2011年2月17日 星期四

讓ResultSet可以移動cursor(預設不可移動)

ResultSet rs = Statment.executeQuery();
        rs.last();
        int rowCount = rs.getRow();
在一般情況我們想使用rs.last();將cursor移到最後一行,
如此int rowCount = rs.getRow();這行就可以知道Table有幾筆資料(Rows),
但如果是用一般的ResultSet rs = Statement.executeQuery();
所取出的ResultSet是無法執行rs.last();來移動cursor ~"~(遺憾.....)
而且會拋出SQLException :Result set type is TYPE_FORWARD_ONLY
解決方法 :
在creat Statement物件時,就要指定輸出的ResultSet的型態,如下:
PreparedStatement prestm = con.prepareStatement(SQL,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
本範例用PreparedStatement ,其與Statement差不多,只是呼叫方法是改為
con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);

沒有留言:

張貼留言