javaresultset
『壹』 java ResultSet取值
遍歷resultSet
while(rs.next())
{
int i =rs.getString("數字的列名");
if(2==i)
{
// 對這行的其他操作
}
}
『貳』 ResultSet怎麼用
在Java中,獲得ResultSet的總行數的方法有以下幾種。
第一種:利用ResultSet的getRow方法來獲得ResultSet的總行數
Java代碼
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rset = stmt.executeQuery("select * from yourTableName");
rset.last();
int rowCount = rset.getRow(); //獲得ResultSet的總行數
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); ResultSet rset = stmt.executeQuery("select * from yourTableName"); rset.last(); int rowCount = rset.getRow(); //獲得ResultSet的總行數第二種:利用循環ResultSet的元素來獲得ResultSet的總行數
Java代碼
ResultSet rset = stmt.executeQuery("select * from yourTableName");
int rowCount = 0;
while(rset.next()) {
rowCount++;
}
ResultSet rset = stmt.executeQuery("select * from yourTableName"); int rowCount = 0; while(rset.next()) { rowCount++; }rowCount就是ResultSet的總行數。
第三種:利用sql語句中的count函數獲得ResultSet的總行數
Java代碼
ResultSet rset = stmt.executeQuery("select count(*) totalCount from yourTableName");
int rowCount = 0;
if(rset.next()) {
rowCount=rset .getInt("totalCount ");
}
ResultSet rset = stmt.executeQuery("select count(*) totalCount from yourTableName"); int rowCount = 0; if(rset.next()) { rowCount=rset .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 rset = stmt.executeQuery("select * from yourtable");
ResultSetMetaData rsmd = rset.getMetaData() ;
int columnCount = rsmd.getColumnCount();
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); ResultSet rset = stmt.executeQuery("select * from yourtable"); ResultSetMetaData rsmd = rset.getMetaData() ; int columnCount = rsmd.getColumnCount();columnCount 就是ResultSet的總列數。
『叄』 java裡面 resultset能夠作為函數的返回值嗎
java裡面的ResultSet是可以作為函數的返回值的,這個函數返回一個ResultSet對象,具體示例代碼如下:
publicclassDemo{
publicstaticvoidmain(String[]args){
}
privateResultSetgetNum(){//返回值為ResultSet的函數
ResultSetrs=null;
returnrs;
}
}
ResultSet是資料庫結果集的數據表,通常通過執行查詢資料庫的語句生成。
『肆』 java資料庫操作,老是提示ResultSet已關閉
在默認情況下,同一時間每個
Statement
對象在只能打開一個
ResultSet
對象。因此,如果讀取一個
ResultSet
對象與讀取另一個交叉,則這兩個對象必須是由不同的
Statement
對象生成的。如果存在某個語句的打開的當前
ResultSet
對象,則
Statement
介面中的所有執行方法都會隱式關閉它。
你的delRecord方法里,rs開始由executeQuery得到,然後在while循環內,又執行了executeUpdate,所以rs被關閉,在執行rs.isAfterLast()時出現異常。。
rs=sql.executeQuery("select
*
from
message");
while(rs.next()){
if(this.number.equals(rs.getString(1).trim()))
{
sql.executeUpdate("delete
from
message
where
number='"+this.number+"'");
break;
}
}
『伍』 使用java,用resultset獲取資料庫中的結果
ResultSet
是一個迭代模式的動態連接容器。
迭代模式的容器遍歷的時候通常是這樣的
while(rs.next()){
//循環內容
}
rs.next()返回值是一個boolean,表示在迭代過程中是否已經到結尾。
直接從statement.excuteQuery()獲得的rs默認數據游標在起始數據的前一個位置,調用一遍rs.next()才能指向可能有數據的第一條數據。然後遍歷繼續,直到迭代集合中再無數據rs.next()返回false;
ps:rs.getRow()表達的意思是結果集在當前游標下共存在多少列,不是rs的size()
在循環體中您將可以獲得當前整行數據的各個列的值以及其它信息。
『陸』 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);
『柒』 在編寫訪問資料庫的JAVA程序時,ResultSet對象的作用是
ResultSet:完成了查詢結果的存儲功能,而且只能讀去一次,不能夠來回的滾動讀取。
返回的是一個結果集,可以通過方法next()逐一獲取從資料庫取到的值
『捌』 JAVA中Resultset() 方法返回的結果集是什麼類型
ResultSet result = stmt.executeQuery("SELECT * FROM message");
while(result.next()) ...{
result.getString(1) ;
result.getString(2) ;
}
是一個查詢結果集~