java resultset 可直接查出多少行

public class My_User_Sel {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Connection con = null;
  PreparedStatement pStatement = null;
  ResultSet resultSet = null;
    try {
   con = ConnectionManager.getConnection();
   String sql = "select * from users where userName='某某某";
   Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
   
   resultSet = stmt.executeQuery(sql);
   resultSet.last();
   System.out.println("共查出:"+resultSet.getRow()+"條記錄");
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  finally
  {
   ConnectionManager.closeResultSet(resultSet);
   ConnectionManager.closeStatement(pStatement);
   ConnectionManager.closeConnection(con);
  }
 }

}

 

 

 


參數的說明:

參數 int type

ResultSet.TYPE_FORWORD_ONLY 結果集的遊標只能向下滾動。
ResultSet.TYPE_SCROLL_INSENSITIVE 結果集的遊標可以上下移動,當數據庫變化時,當前結果集不變。
ResultSet.TYPE_SCROLL_SENSITIVE 返回可滾動的結果集,當數據庫變化時,當前結果集同步改變。

參數 int concurrency

ResultSet.CONCUR_READ_ONLY 不能用結果集更新數據庫中的表。
ResultSet.CONCUR_UPDATETABLE 能用結果集更新數據庫中的表。

當使用ResultSet re=stmt.executeQuery(SQL語句)查詢後,可以使用下列方法獲得信息:

public boolean previous() 將遊標向上移動,該方法返回boolean型數據,當移到結果集第一行之前時,返回false。
public void beforeFirst 將遊標移動到結果集的初始位置,即在第一行之前。
public void afterLast() 將遊標移到結果集最後一行之後。
public void first() 將遊標移到結果集的第一行。
public void last() 將遊標移到結果集的最後一行。
public boolean isAfterLast() 判斷遊標是否在最後一行之後。
public boolean isBeforeFirst() 判斷遊標是否在第一行之前。
public boolean ifFirst() 判斷遊標是否指向結果集的第一行。
public boolean isLast() 判斷遊標是否指向結果集的最後一行。
public int getRow() 得到當前遊標所指向行的行號,行號從1開始,如果結果集沒有行,返回0。
public boolean absolute(int row) 將遊標移到參數row指定的行號。如果row取負值,就是倒數的行數,absolute(-1)表示移到最後一行,absolute(-2)表示移到倒數第2行。當移動到第一行前面或最後一行的後面時,該方法返回false。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章