我不希望使用的next(),因为如果结果不是空的,我不希望光标要先进。是否有某种peek()方法或等价物,如果ResultSet为空且返回false,否则不会影响记录?是否有可能判断java ResultSet是否为空而不影响记录?
编辑:
我不能叫beforeFirst
,因为我得到以下
操作需要一个滚动的ResultSet,但是这ResultSet是 FORWARD_ONLY
我需要FORWARD_ONLY
因为我使用PostgreSQL光标
我不希望使用的next(),因为如果结果不是空的,我不希望光标要先进。是否有某种peek()方法或等价物,如果ResultSet为空且返回false,否则不会影响记录?是否有可能判断java ResultSet是否为空而不影响记录?
编辑:
我不能叫beforeFirst
,因为我得到以下
操作需要一个滚动的ResultSet,但是这ResultSet是 FORWARD_ONLY
我需要FORWARD_ONLY
因为我使用PostgreSQL光标
可以调用first()
方法来检查,如果你有在ResultSet
结果。如果first()
返回true,则可以调用beforeFirst()
重置ResultSet
光标位置。
这就是我正在做的事情,我得到的地方是'操作需要一个可滚动的ResultSet,但是这个ResultSet是FORWARD_ONLY'异常 – Pere
isBeforeFirst()
返回true
如果光标位于第一行之前或false
如果它是在任何其他位置或者结果集是空的。
参见[如何检查,如果结果集返回W/O移动Java中的光标记录(http://stackoverflow.com/questions/6722285/how-to-check- if-resultset-has-records-returned-wo-moving-the-cursor-in-java) –
为什么你不能创建一个滚动不敏感的'ResultSet'?它只需要一个'Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE);'。 –
@ SanjayT.Sharma该声明将失败,因为你还需要提供其并发模型:'语句查询= conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);' –