我估计没有数据. Oracle的prepared statement对某些char类型的字段有些问题, 你用Prepared statement了么?

解决方案 »

  1.   

    String sql = "select * from jf_oper_inf where staff_id = 'yht' and oper_password = '333333' and status = 'AVA'";
    prepStmt = conn.prepareStatement(sql);
    System.out.println("sql = "+sql);
    rs = prepStmt.executeQuery();
    我用sql语句在sqlplus中查找是绝对有数据的
      

  2.   

    你的rs 在上面是不是被用过一次了?!
    你用rs.last() rs.getRow();看看什么结果?!!!
      

  3.   

    很奇怪
    我在数据库中用几条数据,其中staff_id = 'yht' and oper_password = '333333';还有staff_id = 'admin' and oper_password = '333333'等,只有staff_id = 'admin' and oper_password = '333333'可以,其他的都不行,真是奇怪?????
      

  4.   

    while(rs.next())
    也是一样不行呀
      

  5.   

    while(rs.next())肯定也不行
    是不是连的同一数据库啊
      

  6.   

    rs.get。。只能取一次,取好了数据,RESULTSET就释放了数据了
      

  7.   

    可能是你的游标的问题,Oracle默认的游标是仅向前的。你试一个rs = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,1,3).executeQuery(sql);
      

  8.   

    next()的执行原理是什么 它的执行原理是把指针后移
    并判断是否为null 不是就返回该记录的值 你首先判断
    rs是否为null 当然为null了 因为在得到结果集并且没有
    用next()取数据的时候 rs 总是指向第一条记录的前面的
    所有你一开始就判断rs==null当然返回的是假了
    还是多看看基础吧 弄懂原理最重要 
      

  9.   

    stmt = conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);