java范例

          java

          Result 游標(biāo)控制

          1
                      stmt = conn.createStatement(
                          ResultSet.TYPE_SCROLL_INSENSITIVE,
                          ResultSet.CONCUR_READ_ONLY );//注意必須有參數(shù),否則r沒結(jié)果
                      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()參數(shù)介紹:


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

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


          接著來看看resultSetConcurrency參數(shù)的意義:
              CONCUR_READ_ONLY: 表示當(dāng)前ResultSet對(duì)象只讀,不能更新;
              CONCUR_UPDATABLE:表示當(dāng)前ResultSet可以更新。

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


          [備注]
          在默認(rèn)情況下類型為 TYPE_FORWARD_ONLY, CONCUR_READ_ONLY 并發(fā)級(jí)別。

          其實(shí)這些參數(shù)名稱都對(duì)應(yīng)一個(gè)整數(shù)值:
          TYPE_FORWARD_ONLY=1003
          TYPE_SCROLL_INSENSITIVE=1004
          TYPE_SCROLL_SENSITIVE=1005

          CONCUR_READ_ONLY=1007
          CONCUR_UPDATABLE=1008



          關(guān)于Interface ResultSet 更多方法,請(qǐng)參考http://java.sun.com/j2se/1.5/docs/api/java/sql/ResultSet.html

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


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 昌图县| 巴林左旗| 株洲市| 绥江县| 洪雅县| 晋中市| 岳阳市| 仪陇县| 陇川县| 车致| 北安市| 明水县| 汝南县| 莱西市| 绥滨县| 宁武县| 正宁县| 定边县| 巴楚县| 河源市| 常熟市| 贡山| 商丘市| 彭水| 洛隆县| 浙江省| 和静县| 合江县| 正镶白旗| 德庆县| 台中市| 桦南县| 泌阳县| 垫江县| 陵川县| 镶黄旗| 卢龙县| 淮安市| 南汇区| 平邑县| 遂昌县|