JDBC結果集用法

1.可滾動的結果集

   Statement s = conn.createStatement(type,concurrency);

   type:

   1.TYPE_FORWARD_ONLY   結果集不能滾動

   2.TYPE_SCROLL_INSENSITIVE  結果集可以滾動,但對數據庫變化不敏感,也就是說即使數據庫數據被更新了,也不反應在這個結果集上。

   3.TYPE_SCROLL_SENSITIVE   結果集可以滾動,但對數據庫變化敏感,反映在這個結果集上。

   Concurrency:

   1.CONCUR_READ_ONLY   結果集不能用於更新數據庫

   2.CONCUR_UPDATABLE   結果集可以用於更新數據庫

2. 可更新的結果集

   Statement s = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);

    這樣excuteQuery方法返回的結果集就將是可更新的結果集,但是,不是所有的查詢都返回可更新的結果集。假如返回的是多個表的連接操作,那麼產生的結果集將是不可更新的。ResultSet類中的getConcurrency方法來確定結果集是否可更新的。

     例子如下:

  String query = "select * from zhao";

  ResultSet rs = statement.executeQuery(query);

  while(rs.next())

  {

       double price = rs.getDouble("price");

       rs.updateDouble("price",price+1);

       rs.updateRow();//就是把更新的數據發送到數據庫

  }

  可以調用這個方法,取消對當前行的更新,cancelRowUpdates();

  如果要插入一行數據,則如下

  rs.moveToInsertRow();

  rs.updateString(....);

  ....//若干個updateXXX();

  rs.insertRow();

  rs.moveToCurrentRow();

  rs.deleteRow();//來刪除當前指向的行!這個方法立即把該行和數據庫上的那條行刪除掉!

 

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