【发布时间】:2018-01-16 17:33:31
【问题描述】:
String sql = "Select MAX(ORDERLINEID) From ORDERLINESTABLE";
ResultSet rst;
rst = stmt.executeQuery(sql);
if(rst.next())
{
next = rst.getInt("ORDERLINEID");
next++;
}
我的数据库中有一个名为 ORDERLINESTABLE 的表,该表当前为空。我已经运行了上面的代码,目的是获取存储在 ORDERLINEID 列中的最高整数,从而允许我在向数据库中添加项目时增加它。
我希望这个查询不会返回任何内容,因为表是空的,但是在调试时我注意到搜索返回的是 rst.next() 方法的 true。
有人知道为什么会这样吗?我查看了 resultset.next() 文档,据我所知,它应该返回 false。
【问题讨论】:
-
至于“为什么”,这是一个基本的SQL行为,和关系代数、关系演算、聚合函数等基础学术理论有关,这里有点参考:www-cs-students.stanford.edu/~wlam/compsci/sqlnulls
-
感谢那个人,只是收藏了那个链接。不会假装我理解所有这些,但足以让我将来可以使用它:)