JAVA將ResultSet結果集遍歷到List中

2021-09-14 08:28:42 字數 1084 閱讀 7508

今天在使用jstl標籤展示查詢結果時遇到乙個小問題,即如何將resultset物件傳遞給前台頁面。 

在預設情況中我們在使用資料庫查詢時

class.forname(dom.getdriver()); //載入mysql jdbc驅動程式 

string url=dom.geturl()+"/"+datebasename+"?characterencoding=utf-8";

connection conn = drivermanager.getconnection(url,dom.getusername(),dom.getpassword());

statement stat = conn.createstatement();

string sql="select * from "+tablename+" order by "+order+";";

resultset rs=stat.executequery(sql);

list=convertlist(rs);

stat.close();

conn.close();

return list;

在正常情況下,我們是不能直接將 resultset 記錄集 rs 直接傳遞給前台的,因為 resultset 不僅無法進行迴圈遍歷 (即只能每行遍歷,從0至end ,執行一次),而且在實際應用中,它還必須被關閉。當關閉後,rs為null ,結果不再存在。 

在這時我們就需要將 resultset 物件進行遍歷到 list 中,**如下:

private static list convertlist(resultset rs) throws sqlexception

list.add(rowdata);

}return list;

}

檢視以上**,可以看出我們使用 map 與 metadate 使 resultset 儲存到 list 中的,因為 list 只能存放元素的索引而不能存放元素的值,所以我們要用到 map 。 

使用這種方法的好處就是可以建立高復用性的** ,因為我們不需要每次通過指定鍵名取值。 

實際工作間接,與君共勉。

java獲取ResultSet記錄行數

記得以前寫過一篇,但是貌似那個有點問題,那個應該是列數,這個地方,我重新糾正一下自己,也記錄一下,因為總是會忘記,正好今天用到了,就趕緊發了算了.如下 statement stmt conn.createstatement resultset.type scroll insensitive,resu...

java獲取ResultSet記錄行數 列數

statement stmt conn.createstatement resultset.type scroll insensitive,resultset.concur read only resultset rs stmt.executequery sql 獲取resultset記錄行數 rs...

關於java中返回ResultSet結果集行數

st conn.createstatement int rowcount 0 resultset resultset st.executequery sql while resultset.next 此時返回的rowcount就是對應的結果集的總的行數。但是此時的resultset.next 已經執...