从带有ResultSet的Oracle数据库中读取VARCHAR2



最近开始使用带有Java和ResultSet的Oracle数据库,我要查询的表具有以下列结构:

USU_PASSWORD VARCHAR2(30 BYTE) NOT NULL

我的代码遇到的问题是,这个列已经用DES算法加密了,我的insert、update和delete查询运行得很好,但当我想查询以查找该列上具有某个值的行时,ResultSet上的"next"属性将变为null。

当我尝试从ResultSet中获取值时,它甚至不会进入while语句

while(resultSet.next(){ //Does not enter here, and the next property is null }

一些帮助可能是不错的

尊敬

我在下面添加我的代码

Sesion sesion = null; 
    ResultSet rs = null; 
    try{
        rs = executePreparedStatement(LOGIN_PREPARED_STATEMENT, new String[]{nombreUsuario, pass});
        while(rs.next()){
            sesion = new Sesion(); 
            sesion.setCarCveElectoral(rs.getString("CAR_CVE_ELECTORAL"));
            sesion.setCarEstCve(rs.getString("CAR_EST_CVE"));
            sesion.setCarFechaInicio(rs.getDate("CAR_FECHA_INICIO"));
            sesion.setCarFechaTermino(rs.getDate("CAR_FECHA_TERMINO"));
            sesion.setCarPlzCve(rs.getString("CAR_PLZ_CVE"));
            sesion.setCarPreCve(rs.getString("CAR_PRE_CVE"));
            sesion.setCarPstCve(rs.getString("CAR_PST_CVE"));
        }
        return sesion; 
    }catch(Exception ex){
    }

其中executePreparedStatement函数代码为

ResultSet rs = null; 
    PreparedStatement ps = null;
    try{
        if(this.connection == null){
            if(getConnection()){
                ps = this.connection.prepareStatement(stmnt); 
                for(int i = 0; i < params.length; i ++)
                    ps.setString(i, params[i]);
                rs = ps.executeQuery(); 
            }else{
                System.out.println("No se pudo conectar a la base de datos"); 
            }
        }else{
            ps = this.connection.prepareStatement(stmnt);
            for(int i = 0; i < params.length; i ++)
                ps.setString(i + 1, params[i]);
            rs = ps.executeQuery(); 
        }
    }catch(SQLException ex){
        System.out.println("Ha ocurrido un error: " + ex.getMessage()); 
    }
    return rs; 

LOGINPREPARED_STATEMENT字符串为

"从usuario中选择*,其中USU_NOMBRE=?AND USU_PASSWORD=?"

我已经找到了解决方案,这是我的加密问题,我使用了名为md5hash的Oracle MD5函数,而不是DES算法,所以,我的查询看起来像

"SELECT * FROM USUARIO WHERE USU_NOMBRE = '%s' AND USU_PASSWORD = md5hash('%s')"

相关内容

  • 没有找到相关文章

最新更新