数据库是使用mysql,用jdbc连接,
在查询结果集是出现了一个奇怪的问题,
String query = "select fee from sale_fee_in where fee_id=111;" ;
 Statement stm = conn.createStatement();
 ResultSet rst = stm.executeQuery(query);
 if(rst.next()){
  .....
  System.out.println("bbbbbbbbb");
 }
 ....
很奇怪的是在表sale_fee_in中不存在fee_id为111的数据,但是却可以输出“bbbbbbbbb”,
这是什么原因呢?
请各位高手帮帮忙,怎么才可以让他不输出这个“bbbbbbbbb”呢??

解决方案 »

  1.   

    不太可能吧?这么怪异???
    试着用一些 select fee from sale_fee_in where fee_id=?试试吧
    就是用PreparedStatement试试
      

  2.   

    你的bbbbbb是自己syso输出的吧?只要表中有数据,那rst。next()即为真啊,那就可以执行syso!
      

  3.   

    各位大虾们,我想这可能是sql注射问题,where查询条件的问题,改用select fee from sale_fee_in where fee_id=?试试,可能会报错吧,试试,呵呵
      

  4.   

    不太可能。可能是数据库连错了或者是jar包有问题吧。
      

  5.   

    在mysql的命令行中查询一下select fee from sale_fee_in where fee_id=111看看是否真的没有数据
      

  6.   

    如果说表中没有 fee_id=111的数据,那么查询出来后 结果集 应该为空。
    rst.next();时应该会报错!
    怎么可能还会打出“bbbbbbbb”呢?
    很费解!
      

  7.   

    String query = "select fee from sale_fee_in where fee_id=111;" ;
     Statement stm = conn.createStatement();
     ResultSet rst = stm.executeQuery(query);
     if(rst.hasNext()){
      .....
      System.out.println("bbbbbbbbb");
      rst.next();
     }