我想用JDBC得到pig表里最大的id(number类型的),我在sqlplus里输入select max(id) pig;能看到 MAX(ID)的值 是22,但在JDBC里得到的值总是0,代码如下(省略部分代码,应该跟那些代码无关):
String sql = "select max(id) from pig";
try {
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
int max = 5;
while (rs.next()) {
max = rs.getInt(1);
System.out.println(max);
}
折磨了我半天了,求教各位!!

解决方案 »

  1.   

    第一行有口误,应该是"select max(id) from pig;"
      

  2.   

    把sql语句放入到数据库里面执行一下看看
      

  3.   

    最后一个分号导致有问题?是否和sqlplus是同一个库?
      

  4.   

    select id from pig先看一下这个能不能查到id
    如果不能的话并且还是0的话,可能是max = rs.getInt(1);
    有误,也有可能像楼上所说的缺少“;”
      

  5.   

    1,注意分号问题。
    2,把Sql摘出来单独执行下看看。
    3,如2还不行执行“select id from pig”看看。
      

  6.   

    String sql = "select max(id) from pig";
            try {
                pstmt = conn.prepareStatement(sql);
                rs = pstmt.executeQuery();
                int max = 5;
                while (rs.next()) {
                    max = rs.getInt(1);
                    System.out.println(max);
                }
    从代码上看也没有什么错误的。你用的应该是oracle 是不是在sqlplus 里插入的数据没有commit啊!
    我只能这样想了。关注。
      

  7.   

    楼上,你太牛了, 这都能被你看出来! 你想的完全正确!我要疯了,就因为没有commit,害得我整了半天代码..!结贴: 
    我用的是oracle;
    我说的口误,指的是帖子的第一行里,不是指代码的第一行;感谢各位了
      

  8.   

    先去数据库里跑一遍你的sql语句,如果没问题在写在代码里去
      

  9.   

    我在sqlplus里输入select max(id) pig;能看到 MAX(ID)的值 是22.
    没有commit能查出来数据
      

  10.   

    java学习交流群:20378027。欢迎大家加入。