ResultSet怎么用
在Java中,獲得ResultSet的總行數的方法有以下幾種。
第一種:利用ResultSet的getRow方法來獲得ResultSet的總行數
Java代碼
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rt = stmt.executeQuery("lect * from yourTableName");
rt.last();
int rowCount = rt.getRow(); //獲得ResultSet的總行數
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); ResultSet rt = stmt.executeQuery("lect * from yourTableName"); rt.last(); int rowCount = rt.getRow(); //獲得ResultSet的總行數第二種:利用循環ResultSet的元素來獲得ResultSet的總行數
Java代碼
ResultSet rt = stmt.executeQuery("lect * from yourTableName");
int rowCount = 0;
while(rt.next()) {
rowCount++;
}
ResultSet rt = stmt.executeQuery("lect * from yourTableName"); int rowCount = 0; while(rt.next()) { rowCount++; }rowCount就是ResultSet的總行數。
第三種:利用sql語句中的count函數獲得ResultSet的總行數
Java代碼
ResultSet rt = stmt.executeQuery("lect count(*) totalCount from yourTableName");
int rowCount = 0;
if(rt.next()) {
rowCount=rt .getInt("totalCount ");
}
ResultSet rt = stmt.executeQuery("lect count(*) totalCount from yourTableName"); int rowCount = 0; if(rt.next()) { rowCount=rt .getInt("totalCount "); }rowCount就是ResultSet的總行數。
• Java中獲得ResultSet的總列數是非常簡單事情,因為Java中ResultSet提供了ResultSetMetaData工具類,ResultSetMetaData 是ResultSet的元數據的集合說明。
java獲得ResultSet總列數的代碼如下:
Java代碼
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rt = stmt.executeQuery("lect * from yourtable");
ResultSetMetaData rsmd = rt.getMetaData() ;
int columnCount = rsmd.getColumnCount();
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); ResultSet rt = stmt.executeQuery("lect * from yourtable"); ResultSetMetaData rsmd = rt.getMetaData() ; int columnCount = rsmd.getColumnCount();columnCount 就是ResultSet的總列數。
可滾動的ResultSet是什么意思 請幫我舉個例子 謝謝
這個類型支持前后滾動取得紀錄next()、previous(),回到第一行first(),同時還支持要去的ResultSet中的第幾行absolute(int n),以及移動到相對當前行的第幾行relative(int n),要實現這樣的ResultSet在創建Statement時用如下的方法。
Statement st = conn.createStatement(int resultSetType, int resultSetConcurrency)
ResultSet rs = st.executeQuery(sqlStr)
其中兩個參數的意義是:
resultSetType是設置ResultSet對象的類型可滾動,或者是不可滾動。取值如下:
ResultSet.TYPE_FORWARD_ONLY只能向前滾動
ResultSet.TYPE_SCROLL_INSENSITIVE和Result.TYPE_SCROLL_SENSITIVE這兩個方法都能夠實現任意的前后滾動,使用各種移動的ResultSet指針的方法。二者的區別在于前者對于修改不敏感,而后者對于修改敏感。
resultSetConcurency是設置ResultSet對象能夠修改的,取值如下:
ResultSet.CONCUR_READ_ONLY 設置為只讀類型的參數。
ResultSet.CONCUR_UPDATABLE 設置為可修改類型的參數。
所以如果只是想要可以滾動的類型的Result只要把Statement如下賦值就行了。
Statement st = conn.createStatement(Result.TYPE_SCROLL_INSENITIVE,
ResultSet.CONCUR_READ_ONLY);
ResultSet rs = st.excuteQuery(sqlStr);
關于ResultSet
ResultSet
rs
=
getStatement().executeQuery(sql);
//執行查詢語句
rs.moveToInrtRow();
//移動游標到所要插的行!或者叫指針
rs.updateString("Fcode",
frmValue[i][0]);
//修改值
rs.updateString("Fname",
frmValue[i][1]);
rs.updateString("FdescCode",
frmValue[i][2]);
rs.updateString("Ftype",
frmValue[i][3]);
//執行所要修改的內容
rs.inrtRow();
resultt中是數據嗎
結果集(ResultSet)是數據中查詢結果返回的一種對象,可以說結果集是一個存儲查詢結果的對象,但是結果集并不僅僅具有存儲的功能,他同時還具有操縱數據的功能,可能完成對數據的更新等。
ResultSet是一個結果集,怎么獲得里面的數據
只有一個參數的話,百if(rs.next())先判斷一下,然后就看你存放的是什么類型的數據了,那個src是String類型的還是URL類型的?rs.getString(1)或者rs.getURL(1)來得到該數據的引用。在ResultSet中取數據之前都要使用rs.next()方法,一個數據的話就是if(rs.next());多個數據的話就是while(rs.next())。每次讀出數據后結果集的游標自動下移。鑒于你所說只有一個參數,那么列的度索引就應該是一。
java中Result和ResultSet的區別,各有什么優點?
二者的區別在于前者對于修改不敏感,而后者對于修改敏感
resultSetConcurency是設置ResultSet對象能夠修改的,取值如下:
ResultSet.CONCUR_READ_ONLY 設置為只讀類型的參數。
ResultSet.CONCUR_UPDATABLE 設置為可修改類型的參數。
以下兩種方法的共性:返回可滾動的結果集,當數據庫變化時,當前結果集同步改變。
不可用結果集更新數據庫:
con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
可用結果集直接更新數據庫:
con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATETABLE);