甲骨文Java项目中的用户认证怎么利用JDBC实现

  介绍

这篇文章给大家介绍Java项目中的甲骨文用户认证怎么利用JDBC实现,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

<强>一、添加必须的jar包

需要JDBC连接甲骨文的包和shiro-core依赖,添加shiro-core主要为了方便使用sha - 256散列算法。

进口java.sql.Connection;
  进口java.sql.DriverManager;
  进口java.sql.SQLException;
  进口org.slf4j.Logger;
  进口org.slf4j.LoggerFactory;
  公开课甲骨文{
  私有静态最终日志记录器=LoggerFactory.getLogger (Oracle.class);
  公共静态连接getConnection () {
  连接康涅狄格州=零;
  尝试{
  forname (“oracle.jdbc.driver.OracleDriver");
  logger.debug(“尝试连接数据库“);
  字符串url=癹dbc: oracle:薄:@192.168.0.20:1541:test";
  字符串的用户名=癮pps";
  字符串密码=癮pps";
  康涅狄格州=DriverManager。getConnection (url、用户名、密码);
  }捕捉(ClassNotFoundException cnfe) {
  logger.error (cnfe.getMessage ());
  }捕捉(SQLException sqle) {
  logger.error (sqle.getMessage ());
  }
  返回康涅狄格州;
  }
  公共静态孔隙closeConnection(连接康涅狄格州){
  尝试{
  如果(康涅狄格州!=null) {
  conn.close ();
  康涅狄格州=零;
  }
  }捕捉(SQLException sqle) {
  logger.error (sqle.getMessage ());
  }
  }
  }

进口java.sql.CallableStatement;
  进口java.sql.Connection;
  进口java.sql.PreparedStatement;
  进口java.sql.SQLException;
  进口java.sql.Types;
  进口org.slf4j.Logger;
  进口org.slf4j.LoggerFactory;
  公开课UserDao {
  私有静态最终日志记录器=LoggerFactory.getLogger (UserDao.class);//添加用户
  公共空间saveUser (int userid,用户名的字符串,字符串密码,int roleid) {
  字符串sql=安迦雔h_user_t值(# 63和# 63;,,,,,# 63;,,# 63;)“;
  连接康涅狄格州=Oracle.getConnection ();
  PreparedStatement ps=零;
  尝试{
  ps=conn.prepareStatement (sql);
  ps.setInt (userid);
  ps.setString(用户名);
  ps.setString(3、密码);
  roleid ps.setInt(4日);
  ps.executeUpdate ();
  }捕捉(SQLException sqle) {
  logger.error (sqle.getMessage ());
  最后}{
  Oracle.closeConnection(康涅狄格州);
  如果(ps !=null) {
  尝试{
  ps.close ();
  }捕捉(SQLException e) {
  logger.error (e.getMessage ());
  }
  ps=零;
  }
  }
  }//验证用户(后面添加)
  }

<>强UserService类

进口org.apache.shiro.crypto.hash.Sha256Hash;
  公开课UserService {
  私人UserDao UserDao;
  私有静态int用户id=1;
  公共UserService () {
  userDao=new userDao ();
  }
  公共空间saveUser(用户名的字符串,字符串密码,int roleid) {
  字符串nPassword=new Sha256Hash(密码).toHex ();
  userDao.saveUser (UserService。用户id、用户名、nPassword roleid);
  }//?
  }

创建或替换过程validate_user (in_username varchar2,
  in_password varchar2,
  out_result varchar2)
  tmp_uid lh_user_t.id %类型;
  开始
  select count (*)
  到tmp_uid
  从lh_user_t t
  在t。用户名=in_username
  和t。密码=in_password;
  out_result:=& # 39; & # 39;;
  异常
  当NO_DATA_FOUND
  out_result:=& # 39; e # 39;;
  结束;

进口java.sql.CallableStatement;
  进口java.sql.Connection;
  进口java.sql.PreparedStatement;
  进口java.sql.SQLException;
  进口java.sql.Types;
  进口org.slf4j.Logger;
  进口org.slf4j.LoggerFactory;
  公开课UserDao {
  私有静态最终日志记录器=LoggerFactory.getLogger (UserDao.class);//添加用户//{…}//验证用户
  公共字符串validateUser(用户名的字符串,字符串密码){
  字符串sql=暗饔胿alidate_user(# 63和# 63;,,,,,# 63;)“;
  字符串的结果=零;
  连接康涅狄格州=Oracle.getConnection ();
  CallableStatement cs=零;
  尝试{
  c=conn.prepareCall (sql);
  cs。setString(用户名);
  cs。setString(2、密码);
  cs。Types.VARCHAR registerOutParameter (3);
  cs.execute ();
  结果=cs.getString (3);
  }捕捉(SQLException sqle) {
  logger.error (sqle.getMessage ());
  最后}{
  Oracle.closeConnection(康涅狄格州);
  如果(cs !=null) {
  尝试{
  cs.close ();
  }捕捉(SQLException e) {
  logger.error (e.getMessage ());
  }
  c=零;
  }
  }
  返回结果;
  }
  }

甲骨文Java项目中的用户认证怎么利用JDBC实现