結果集ResultSet獲取行數

2021-08-28 19:46:19 字數 883 閱讀 2632

最近有課,跟著老師寫個小微博,他的介面是這樣的

然後在獲取微博數的時候我跳進了坑!

老師用的jdbc,select那塊是list,map然後在獲取以後可以直接通過size()獲取微博數,我用的c3p0返回的resulset結果集,所以悲劇發生了…

看下我的code

public int getcountwbbyid(int id) throws exception ;

resultset rs = dbutils.executequery(sql, params);

if(rs.getrow() == 0)

return rs.getrow();

}

然後資料庫無論有沒有資料,結果都是0,所以思考問題在哪!

結果就是:getrow()是返回當前游標所在行的下標。無論是否查詢到資料,一開始的游標肯定是在0的位置處,也就是不是返回結果集的行數!!!

解決方式就是和獲取資料時一樣,移一下游標next()貼下code

public int getcountwbbyid(int id) throws exception ;

resultset rs = dbutils.executequery(sql, params);

int count_wb = 0;

while(rs.next())

return count_wb;

}

問題解決!

好久沒寫了,說的有點囉嗦,望見諒!

ResultSet結果集為空判斷

之前對resultset結果集的next 方法的引用沒太多在意,常常就是直接while rs.next 進行遍歷。如果要對rs結果集做是否為空進行判斷的話,很多人第一想法是 if rs null 這是錯誤的,無論什麼結果都會返回 false 的結果,在這裡我們就需要用if rs.next 或者是if...

mysql結果集ResultSet列別名

今天碰到乙個mysql結果集別名顯示異常的問題 resultsetmetadata.getcolumnname 和 resultsetmetadata.getcolumnlabel的區別 簡單的講就是 對於查詢語句select cd.id client data id from dual來說 res...

ResultSet結果集為空判斷

工作中碰上,在網上看了半天,才發現 如果要對rs結果集做是否為空進行判斷的話,很多人第一想法是 if rs null 這是錯誤的,無論什麼結果都會返回 false 的結果,在這裡我們就需要用if rs.next 或者是if rs.first 前者是判斷rs是否有值,沒有時返回false 後者是判斷r...