JDBC中的ResultSet API沒有直接獲取記錄條數的方法,現介紹幾個:
方法一:利用ResultSet的getRow方法來獲得ResultSet的總行數
ResultSet rs = ps.executeQuery(sql);
rs.last(); //移到最后一行
int rowCount = rs.getRow();//得到當前行號,也就是記錄數
rs.beforeFirst();
//如果還要用結果集,就把指針再移到初始化的位置
方法二:利用循環ResultSet的元素來獲得ResultSet的總行數
ResultSet rs = ps.executeQuery(sql);
int rowCount = 0; while(rs.next())
{
rowCount++;
}
方法三:利用sql語句中的count函數獲得ResultSet的總行數
String sql = "select count(*) record from tablename";
ResultSet rs = ps.executeQuery(sql);
int rowCount = 0;
if(rs.next())
{
rowCount=rs.getInt("record");
}
確實是JDK API並沒有給我們一個很顯式的關於ResultSet結果集的記錄數,但是我們還是通過方法一知道,其實是可以通過其他的方法來進行變通的。所以,我們 時常在使用JDK的時候,可能你想要某個功能,雖然在API中可能找不到相對應的方法,但是經常是可以通過其他的方式來變通實現,雖然有時這樣的變通可能 效率不高,但是也經常是我們自己再實現出來的可能更沒有它的多種轉換來的更好,所以一定要多學習,多研究API,不管是JDK,還是其他技術的,其實你只 要是建立在其平台上的,你的絕大多數的需求都是可以通過它現有的來升華的。反正就是要多一種思維,就是站在別人的肩膀上學習和升華,我相信,我們使用的 JDK,開源框架和工具包的開發水平還是非常之高的。