jsp:由rs.last()方法不可用,學習ResultSet遊標筆記

來源:互聯網
上載者:User

問題起因:
今天學習做一個文章列表翻頁的程式,需要獲得資料集中的資料總行數
我用的方法如下:
--------------------------------------------------
int RowCount = 0;
rs.last();
RowCount= rs.getRow(); //移動到最後,檢索當前行編號,擷取總行數 。
out.print("總行數:" + RowCount + "<br/>");
//out.print("isLast:" + rs.isLast() + "<br/>");
//out.print("isAfterLast:" + rs.isAfterLast() + "<br/>");
rs.beforeFirst(); //便於後面輸出資料
---------------------------------------------------
執行到rs.last()時候就提示不支援這個方法!
[Microsoft][SQLServer 2000 Driver for JDBC]Unsupported method: ResultSet.last  

資料分析:
=============================遊標唯讀向前================================
java.sql
介面:Connection
方法:createStatement
Statement createStatement()
               throws SQLException
建立一個 Statement 對象來將 SQL 陳述式發送到資料庫。
沒有參數的 SQL 陳述式通常使用 Statement 對象執行。
如果多次執行相同的 SQL 陳述式,使用 PreparedStatement 對象可能更有效。
使用返回的 Statement 對象建立的結果集在預設情況下類型為 TYPE_FORWARD_ONLY,
並帶有 CONCUR_READ_ONLY 並發層級。[---注意這裡,預設是唯讀向前的遊標]

返回:
一個新的預設 Statement 對象
拋出:
SQLException - 如果發生資料庫訪問錯誤

===========================遊標自訂======================================
java.sql
介面:Connection
方法:createStatement
Statement createStatement(int resultSetType,
                            int resultSetConcurrency)
                            throws SQLException
建立一個 Statement 對象,該對象將產生具有

給定類型和並發性的 ResultSet 對象。此方法與上述 createStatement 方法相同,但它允許重寫

預設結果集類型和並發性。

參數:
resultSetType - 結果集類型,它是
---ResultSet.TYPE_FORWARD_ONLY、 //遊標向前
---ResultSet.TYPE_SCROLL_INSENSITIVE 或 //該常量指示可滾動但通常不受其他的更改影響的rs類型
---ResultSet.TYPE_SCROLL_SENSITIVE 之一//常量指示可滾動並且通常受其他的更改影響的rs類型。

resultSetConcurrency - 並發類型;它是
---ResultSet.CONCUR_READ_ONLY 或     //唯讀
---ResultSet.CONCUR_UPDATABLE 之一 //可以修改
返回:
一個新的 Statement 對象,該對象將產生具有給定類型和並發性的 ResultSet 對象
拋出:
SQLException - 如果發生資料庫訪問錯誤,或者給定參數不是指示類型和並發性的 ResultSet 常量
從以下版本開始:
1.2

解決辦法:

在建立Statement對象時,指定遊標參數
conn = DriverManager.getConnection(getConnectionUrl(),dbUserName,dbPassword);
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.