2011-08-18 44 views
3

我不希望使用的next(),因为如果结果不是空的,我不希望光标要先进。是否有某种peek()方法或等价物,如果ResultSet为空且返回false,否则不会影响记录?是否有可能判断java ResultSet是否为空而不影响记录?

编辑:

我不能叫beforeFirst,因为我得到以下

操作需要一个滚动的ResultSet,但是这ResultSet是 FORWARD_ONLY

我需要FORWARD_ONLY因为我使用PostgreSQL光标

+0

参见[如何检查,如果结果集返回W/O移动Java中的光标记录(http://stackoverflow.com/questions/6722285/how-to-check- if-resultset-has-records-returned-wo-moving-the-cursor-in-java) –

+0

为什么你不能创建一个滚动不敏感的'ResultSet'?它只需要一个'Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE);'。 –

+0

@ SanjayT.Sharma该声明将失败,因为你还需要提供其并发模型:'语句查询= conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);' –

回答

-1
getFetchSize() 

根据返回的则可以继续的大小...

+0

@Lukas埃德尔..一种混合了遗憾。 .. – ngesh

+0

获取大小无关,与结果集的大小,再加上如果你的目的是要得到的结果的大小,如果什么都没有停止进一步的处理,你可能已经解释了这一点。 – Pere

1

可以调用first()方法来检查,如果你有在ResultSet结果。如果first()返回true,则可以调用beforeFirst()重置ResultSet光标位置。

+0

这就是我正在做的事情,我得到的地方是'操作需要一个可滚动的ResultSet,但是这个ResultSet是FORWARD_ONLY'异常 – Pere

相关问题