请教下高手:
java里面写的语句:
String sql = "SELECT * FROM consumer WHERE id = ?";
  PreparedStatement pStm = conn.prepareStatement(sql);
  pStm.setString(1,new String("0001"));
  ResultSet result = pStm.executeQuery();
  while(result.next()){
   System.out.println(result.getString("id"));
   System.out.println(result.getString("name"));
   System.out.println(result.getInt("totalmoney")); }
结果是空白  什么东西都没
而sqlplus里面查询 得到的是 0001 王明 360
这是什么原因呢?preparedstatement语句有问题?

解决方案 »

  1.   

    用select count(*) from consumer where id = ?试试
      

  2.   

    #1
    直接提示  java.sql.SQLException: 列名无效
    System.out.println(result.getString("id"));这行出错
    我刚刚的代码还不会报错
      

  3.   

    比较奇怪的是我用SELECT * FROM consumer WHERE id > ?
    查出来的竟然也包括0001 0002 0003的数据都查询出来了
      

  4.   

    确定你的id是num型 还是varchar型的。如果是num型的应该是setInt吧?
      

  5.   

    将new String("0001")直接改为“0001”试试,要是不对我也没辙了
      

  6.   

    #4
    create table consumer(id varchar(10),name varchar(15),totalmoney integer);
    id 是varchar型的
      

  7.   

    终于找到问题了 - -  原来我再cmd里面用scott用户(jdbc也用这个用户连接)连接上了...
    所以才会出现这个问题