我在这里遇到问题,我想做的是从表中获取当前日期和列。到目前为止,这是我的代码:
s = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
rset = s.executeQuery("select getdate() as date, tglpengiriman from orders");
java.sql.Date date = rset.getDate("date");
java.sql.Date tglkirim = rset.getDate("tglpengiriman");
在上面代码的第3行中抛出异常“ResultSet中没有当前行”。 我的代码出了什么问题?可能错误理解ResultSet的用法?
感谢您的回答...
编辑: 回答。请参阅@Christopher下面的帖子。感谢
答案 0 :(得分:3)
在调用任何ResultSet.get *方法之前,需要调用ResultSet.next。看一下Statement,ResultSet等文档。另外一定要关闭'finally'块中的所有资源。
答案 1 :(得分:0)
你需要打电话
在从结果集中获取数据之前rset.next()
。检查rset.next()
是否返回true也是明智的。
答案 2 :(得分:0)
迭代您的结果集数据像这样
while (resultSet.next()) {
java.sql.Date date = rset.getDate("date");
java.sql.Date tglkirim = rset.getDate("tglpengiriman");
}
因为结果集的初始位置总是在第一个记录之前,即在第一个记录的开头,这个resultSet.next()使你的结果集指向第一个记录。