• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 專家為您詳解JAVA數據庫基本操作

    發表于:2007-04-27來源:作者:點擊數: 標簽:數據庫java為您基本操作專家
    java 數據庫 基本操作 1、java數據庫操作基本流程 2、幾個常用的重要技巧: 可滾動、更新的記錄集 批量更新 事務處理 java數據庫操作基本流程:取得數據庫連接 - 執行 sql 語句 - 處理執行結果 - 釋放數據庫連接 1、取得數據庫連接 1)用DriverManager取數據
    java 數據庫基本操作
    1、java數據庫操作基本流程
    2、幾個常用的重要技巧:
         可滾動、更新的記錄集
         批量更新
         事務處理

    java數據庫操作基本流程:取得數據庫連接 - 執行sql語句 - 處理執行結果 - 釋放數據庫連接
     1、取得數據庫連接
      1)用DriverManager取數據庫連接
       例子
        String className,url,uid,pwd;
        className = "oracle.jdbc.driver.OracleDriver";
        url       = "jdbc:oracle:thin:@127.0.0.1:1521:orasvr;
        uid       = "system";
        pwd       = "manager";
        Class.forName(className);
        Connection cn = DriverManager.getConnection(url,uid,pwd);
      2)用jndi(java的命名和目錄服務)方式
       例子
        String jndi = "jdbc/db";
        Context ctx = (Context) new InitialContext().lookup("java:comp/env");
        DataSource ds = (DataSource) ctx.lookup(jndi);
        Connection cn = ds.getConnection();
       多用于jsp中

     2、執行sql語句
      1)用Statement來執行sql語句
       String sql;
       Statement sm = cn.createStatement();
       sm.executeQuery(sql); // 執行數據查詢語句(select)
       sm.executeUpdate(sql); // 執行數據更新語句(delete、update、insert、drop等)statement.close();
      2)用PreparedStatement來執行sql語句
       String sql;
       sql  = "insert into user (id,name) values (?,?)";
       PreparedStatement ps = cn.prepareStatement(sql);
       ps.setInt(1,xxx);
       ps.setString(2,xxx);
       ...
       ResultSet rs = ps.executeQuery(); // 查詢
       int c = ps.executeUpdate(); // 更新
       
     3、處理執行結果
      查詢語句,返回記錄集ResultSet
      更新語句,返回數字,表示該更新影響的記錄數
      ResultSet的方法
      1、next(),將游標往后移動一行,如果成功返回true;否則返回false
      2、getInt("id")或getSting("name"),返回當前游標下某個字段的值
      
     4、釋放連接
      cn.close();
      一般,先關閉ResultSet,然后關閉Statement(或者PreparedStatement);最后關閉Connection


    可滾動、更新的記錄集
     1、創建可滾動、更新的Statement
      Statement sm = cn.createStatement(ResultSet.TYPE_SCROLL_ENSITIVE,ResultSet.CONCUR_READ_ONLY);
      該Statement取得的ResultSet就是可滾動的
     2、創建PreparedStatement時指定參數
      PreparedStatemet ps = cn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

      ResultSet.absolute(9000);  
    批量更新
     1、Statement
      Statement sm = cn.createStatement();
      sm.addBatch(sql1);
      sm.addBatch(sql2);
      ...
      sm.executeBatch()
      一個Statement對象,可以執行多個sql語句以后,批量更新。這多個語句可以是delete、update、insert等或兼有
     2、PreparedStatement
      PreparedStatement ps = cn.preparedStatement(sql);
      {
       ps.setXXX(1,xxx);
       ...
       ps.addBatch();
      }
      ps.executeBatch();
      一個PreparedStatement,可以把一個sql語句,變換參數多次執行,一次更新。

      
    事務的處理
     1、關閉Connection的自動提交
      cn.setAutoCommit(false);
     2、執行一系列sql語句
      要點:執行每一個新的sql語句前,上一次執行sql語句的Statement(或者PreparedStatemet)必須先close
     Statement sm ;
     sm = cn.createStatement(insert into user...);
     sm.executeUpdate();
     sm.close();

     sm = cn.createStatement("insert into corp...);
     sm.executeUpdate();
     sm.close();

     3、提交
      cn.commit();
     4、如果發生異常,那么回滾
      cn.rollback();


      閱讀關于 JAVA 數據庫 操作 的全部文章

    原文轉自:http://www.kjueaiud.com

    評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
    ...
    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>