[英]If resultset is not scrollable then absolute function should not work
嗨,我是JDBC概念的新手,據我所知,要將結果集指針雙向移動,需要將結果集設置為可滾動
但是由於結果集未設置為可滾動的絕對函數,因此不允許指針向后移動
但是下面的代碼工作正常
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("select * from studentinfo");
int counter=0;
while(rs.next())
{
System.out.println(rs.getInt(1)+" "+rs.getString(2));
int row = rs.getRow();
if(row==5)
{
if(counter==0)
{
counter++;
rs.absolute(4);
System.out.println(rs.getInt(1)+" "+rs.getString(2));
}
}
}
con.close();
在此代碼中,如果當前行等於5,則將指針移回第四行
如您所見,我在createStatement()方法中未提供任何參數,即默認情況下它應為**不可滾動**,因此上述代碼不應獲取結果,但是如何正常運行呢?
JDBC規范說:
默認的
ResultSet
類型是TYPE_FORWARD_ONLY
。如果驅動程序支持指定的類型,則方法
DatabaseMetaData.supportsResultSetType
返回true
否則返回false
。如果驅動程序不支持提供給方法
createStatement
,prepareStatement
或prepareCall
,它將在創建該語句的Connection
對象上生成一個SQLWarning
。 執行該語句時,驅動程序將返回類型最接近所請求類型的ResultSet
對象。 應用程序可以通過調用ResultSet.getType
方法找出ResultSet
對象的類型。
檢查JDBC驅動程序是否支持TYPE FORWARD_ONLY
。
檢查您是否獲得SQLWarning
。
檢查您得到的ResultSet
類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.