sql里 max(id)的问题

不啃不舒服斯基 2009-12-14 11:46:50
我想用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);
}

折磨了我半天了,求教各位!!
...全文
520 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
shine333 2009-12-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 godismydaughter 的回复:]
引用 3 楼 virusfu 的回复:
你用的是什么数据库

[/Quote]
SQLPLUS一般还能干什么?
shine333 2009-12-14
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 qingyunzhuimeng 的回复:]
select id from pig先看一下这个能不能查到id
如果不能的话并且还是0的话,可能是max = rs.getInt(1);
有误,也有可能像楼上所说的缺少“;”
[/Quote]
我说的不是缺少分号,而是1F的补充中,可能多了一个分号。
qingyunzhuimeng 2009-12-14
  • 打赏
  • 举报
回复
select id from pig先看一下这个能不能查到id
如果不能的话并且还是0的话,可能是max = rs.getInt(1);
有误,也有可能像楼上所说的缺少“;”
godismydaughter 2009-12-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 virusfu 的回复:]
你用的是什么数据库
[/Quote]
shine333 2009-12-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 derline 的回复:]
第一行有口误,应该是"select max(id) from pig;"
[/Quote]
最后一个分号导致有问题?

是否和sqlplus是同一个库?
liujun3512159 2009-12-14
  • 打赏
  • 举报
回复
你把sql拿出来跑下看看
VirusFu 2009-12-14
  • 打赏
  • 举报
回复
把sql语句放入到数据库里面执行一下看看
VirusFu 2009-12-14
  • 打赏
  • 举报
回复
你用的是什么数据库
  • 打赏
  • 举报
回复
顶一下,吃过饭,午过休的朋友帮忙看一下哦
  • 打赏
  • 举报
回复
第一行有口误,应该是"select max(id) from pig;"
「已注销」 2009-12-14
  • 打赏
  • 举报
回复
我觉得 没有错???
hbu_zhy 2009-12-14
  • 打赏
  • 举报
回复
java学习交流群:20378027。欢迎大家加入。
hbu_zhy 2009-12-14
  • 打赏
  • 举报
回复
OMG
weiminan 2009-12-14
  • 打赏
  • 举报
回复
我在sqlplus里输入select max(id) pig;能看到 MAX(ID)的值 是22.


没有commit能查出来数据。。。
2到20个英文 2009-12-14
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 cangyingzhijia 的回复:]
先去数据库里跑一遍你的sql语句,如果没问题在写在代码里去
[/Quote]

同意

苍蝇①号 2009-12-14
  • 打赏
  • 举报
回复
先去数据库里跑一遍你的sql语句,如果没问题在写在代码里去
shine333 2009-12-14
  • 打赏
  • 举报
回复
oooooooops
  • 打赏
  • 举报
回复
楼上,你太牛了, 这都能被你看出来! 你想的完全正确!

我要疯了,就因为没有commit,害得我整了半天代码..!

结贴:
我用的是oracle;
我说的口误,指的是帖子的第一行里,不是指代码的第一行;

感谢各位了
SambaGao 2009-12-14
  • 打赏
  • 举报
回复
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啊!
我只能这样想了。关注。
hbu_zhy 2009-12-14
  • 打赏
  • 举报
回复
1,注意分号问题。
2,把Sql摘出来单独执行下看看。
3,如2还不行执行“select id from pig”看看。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧