Connection conn = null;
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@172.16.2.229:1521:DBSERVER";
String UserName="root";
String PassWord ="root";
conn = DriverManager.getConnection(url,UserName,PassWord);Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from insurance_accounts where name='胡军");
while(rs.next()){
rs.getString(0);
}
rs.close();
conn.close();
问题: rs.next 为false..是什么原因呢,有什么解决办法?

解决方案 »

  1.   

    stmt.executeQuery("select * from insurance_accounts where name='胡军");
      

  2.   

    ResultSet rs = stmt.executeQuery("select * from insurance_accounts where name='胡军'");  这样也没有用
      

  3.   

    PL/sql 中查到的sql语句是没有问题的
      

  4.   

    应该是你断点设置有问题。
    你把rs.getString(0);
    改成
    System.out.println(rs.getString(0));
    然后不要断点直接执行,
    应该能打印出东西来。原因就在你不该看的时候看了rs.next()的值。
      

  5.   

    Connection conn = null;
    Class.forName("oracle.jdbc.driver.OracleDriver");
    String url = "jdbc:oracle:thin:@172.16.2.229:1521:DBSERVER";
    String UserName="root";
    String PassWord ="root";
    conn = DriverManager.getConnection(url,UserName,PassWord);Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery("select * from insurance_accounts where name='胡军'");
    while(rs.next()){
    System.out.print(rs.getString(0));
    }
    rs.close();
    conn.close();这样打印么,什么都没有的
     
      

  6.   

    先到数据库表看看有没有name='胡军'这条记录,还有写jdbc要写异常处理,好习惯是养出来的
      

  7.   

    try catch 没有打印出异常sql 已经验证过,是可以查出数据的
      

  8.   

    ResultSet rs = stmt.executeQuery("select * from insurance_accounts where name like '%胡%'");
    while(rs.next()){
      System.out.println(rs.getString(0));
    }有东西输出么?
      

  9.   

    Connection conn = null;
    ResultSet rs = null;
    try{
    Class.forName("oracle.jdbc.driver.OracleDriver");
    String url = "jdbc:oracle:thin:@172.16.2.229:1521:DBSERVER";
    String UserName="root";
    String PassWord ="root";
    conn = DriverManager.getConnection(url,UserName,PassWord);Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery("select * from insurance_accounts where name='胡军");
    while(rs.next()){
    rs.getString(0);
    }
    }catch(Exception e){
      e.printStackTrace();
    }finally{
    try{
    rs.close();
    conn.close();
    }catch(SQLExcetptin e){
     e.printStackTrace()
     }
     }
    }
     
    没打印异常情况debug提示the source attachment does not contain the source for the file OracleResultSetImpl.class
      

  10.   

    那就继续改改呗:
    ResultSet rs = stmt.executeQuery("select * from insurance_accounts where name like '胡军%'");
    while (rs.next()) {
      System.out.println(rs.getString(0));
      System.out.println(rs.getString(1));
    }
      

  11.   

    ResultSet rs = stmt.executeQuery("select * from insurance_accounts where name='胡军");
    出现错误。
      

  12.   


    原来你没有搞清楚该怎么写sql  select *  改成 select name 就可以了。
      

  13.   

    rs.getString("name"); 为什么,这样也拿不到呢??
      

  14.   

    jdbc操作的时候小标是从1开始的吧,没有0的,你拿rs.getString(0)会报异常的
    你直接从1开始拿应该不会有问题的
      

  15.   

    很简单的问题,需要这么复杂么,rs.next()查看 API,然后依次往上找,总会找出来的,像这种很明显就是拼接的SQL有问题
      

  16.   

    rs.next()的索引应该从1开始,不是0,0是label行