java范例

          java

          Result 游標控制

          1
                      stmt = conn.createStatement(
                          ResultSet.TYPE_SCROLL_INSENSITIVE,
                          ResultSet.CONCUR_READ_ONLY );//注意必須有參數,否則r沒結果
                      rs = stmt.executeQuery( "select * from student" );
                      rs.last();
                      int r = rs.getRow();

                      System.out.println( "r=" + r );

          2
                     rs = stmt.executeQuery( "select count(*) as sc from student" );
                 while ( rs.next() ) {
                          System.out.println( rs.getInt("sc") );
                          System.out.println( rs.getString("sc") ); //都可以
                     }

          3
                    rs = stmt.executeQuery( "select * from student" );
                      while ( rs.next() ) {
                          i++;
                      }
                      System.out.println( "i=" + i );

          ----------------------------------------------------------------------------------------------------
          conn.createStatement()參數介紹:


          第一個參數指定 ResultSet 的類型。其選項有:
              TYPE_FORWARD_ONLY:
              ResultSet指針只能向前移動;
              TYPE_SCROLL_INSENSITIVE:
              ResultSet指針可以前后移動,INSENSITIVE表示不及時更新,就是如果數據庫里的數據修改過,并不
          ResultSet中反映出來;
              TYPE_SCROLL_SENSITIVE:
              ResultSet指針可以前后移動,SENSITIVE表示及時跟蹤數據庫的更新,以便更改ResultSet中的數據。

              在實際開發中,我們可以利用這些參數來方便地移動指針,比如:可以得到ResultSet的記錄數
                  Statement stmt = con.createStatement(
                      ResultSet.TYPE_SCROLL_INSENSITIVE,
                      ResultSet. CONCUR_READ_ONLY );
                  ResultSet rs = stmt.executeQuery("SELECT id, name FROM TABLE1");
                   rs.last();                          //移動到最后一行
                   int rownum = rs.getRow(); //獲得當前行的行號,即記錄的條數
                   rs.absolute(1);                 //將指針返回至第一條記錄


          接著來看看resultSetConcurrency參數的意義:
              CONCUR_READ_ONLY: 表示當前ResultSet對象只讀,不能更新;
              CONCUR_UPDATABLE:表示當前ResultSet可以更新。

              在實際開發中我們可以利用CONCUR_UPDATABLE參數來實時更新ResultSet中的數據,更新有兩種方式:
              第一種方式是更新當前數據行的數據,如:
                   rs.absolute(5);                               // 移動rs指針至第5行數據
                   rs.updateString("NAME", "daniel"); // 將該行name列的值更新為“daniel”
                   rs.updateRow();    //更新數據源的數據
              第二種方式是插入一行數據,如:
                   rs.moveToInsertRow();       // 將指針移動至插入行,插入行是ResultSet對象中的特殊行
                   rs.updateString(1, 2);         // 更新插入行中第一列的值為2
                   rs.updateInt(2, "daniel");     // 更新第二列中的值為daniel
                   rs.insertRow();
                   rs.moveToCurrentRow();     //將指針移動至插入之前的位置


          [備注]
          在默認情況下類型為 TYPE_FORWARD_ONLY, CONCUR_READ_ONLY 并發級別。

          其實這些參數名稱都對應一個整數值:
          TYPE_FORWARD_ONLY=1003
          TYPE_SCROLL_INSENSITIVE=1004
          TYPE_SCROLL_SENSITIVE=1005

          CONCUR_READ_ONLY=1007
          CONCUR_UPDATABLE=1008



          關于Interface ResultSet 更多方法,請參考http://java.sun.com/j2se/1.5/docs/api/java/sql/ResultSet.html

          posted on 2007-10-25 14:10 王波 閱讀(508) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 怀仁县| 白沙| 安多县| 广宁县| 仙游县| 淮阳县| 卢湾区| 靖西县| 康乐县| 锡林浩特市| 泾阳县| 延吉市| 常宁市| 盐亭县| 仁布县| 丰顺县| 阳新县| 凌云县| 普兰县| 来宾市| 海阳市| 扎鲁特旗| 东丰县| 佛学| 龙门县| 孙吴县| 岑巩县| 缙云县| 崇信县| 綦江县| 富裕县| 博白县| 通州区| 丰县| 自治县| 石柱| 伊春市| 连云港市| 合江县| 色达县| 班玛县|