介绍
这篇文章给大家介绍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实现