熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL語言 >> 正文

專家為您詳解JAVA數據庫基本操作

2013-11-13 12:40:13  來源: SQL語言 
    java 數據庫基本操作
    java數據庫操作基本流程
    幾個常用的重要技巧
    可滾動更新的記錄集
    批量更新
    事務處理

    java數據庫操作基本流程取得數據庫連接 執行sql語句 處理執行結果 釋放數據庫連接
    取得數據庫連接
     )用DriverManager取數據庫連接
    例子
    String classNameurluidpwd;
    className = oraclejdbcdriverOracleDriver;
    url       = jdbc:oracle:thin:@::orasvr;
    uid       = system;
    pwd       = manager;
    ClassforName(className);
    Connection cn = DriverManagergetConnection(urluidpwd);
    )用jndi(java的命名和目錄服務)方式
    例子
    String jndi = jdbc/db;
    Context ctx = (Context) new InitialContext()lookup(java:comp/env);
    DataSource ds = (DataSource) ctxlookup(jndi);
    Connection cn = dsgetConnection();
    多用於jsp中

    執行sql語句
    )用Statement來執行sql語句
    String sql;
    Statement sm = cncreateStatement();
    smexecuteQuery(sql); // 執行數據查詢語句(select)
    smexecuteUpdate(sql); // 執行數據更新語句(deleteupdateinsertdrop等)    statementclose();
    )用PreparedStatement來執行sql語句
    String sql;
    sql  = insert into user (idname) values (??);
    PreparedStatement ps = cnprepareStatement(sql);
    pssetInt(xxx);
    pssetString(xxx);
    
    ResultSet rs = psexecuteQuery(); // 查詢
    int c = psexecuteUpdate(); // 更新
  
    處理執行結果
    查詢語句返回記錄集ResultSet
    更新語句返回數字表示該更新影響的記錄數
    ResultSet的方法
    next()將游標往後移動一行如果成功返回true否則返回false
    getInt(id)或getSting(name)返回當前游標下某個字段的值
 
    釋放連接
    cnclose();
    一般先關閉ResultSet然後關閉Statement(或者PreparedStatement)最後關閉Connection


    可滾動更新的記錄集
    創建可滾動更新的Statement
    Statement sm = cncreateStatement    (ResultSetTYPE_SCROLL_ENSITIVEResultSetCONCUR_READ_ONLY);
    該Statement取得的ResultSet就是可滾動的
    創建PreparedStatement時指定參數
     PreparedStatemet ps = cnprepareStatement    (sqlResultSetTYPE_SCROLL_INSENSITIVEResultSetCONCUR_READ_ONLY);

      ResultSetabsolute(); 
    批量更新
     Statement
      Statement sm = cncreateStatement();
      smaddBatch(sql);
      smaddBatch(sql);
     
      smexecuteBatch()
      一個Statement對象可以執行多個sql語句以後批量更新這多個語句可以是deleteupdateinsert等或兼有
     PreparedStatement
      PreparedStatement ps = cnpreparedStatement(sql);
      {
       pssetXXX(xxx);
      
       psaddBatch();
      }
      psexecuteBatch();
      一個PreparedStatement可以把一個sql語句變換參數多次執行一次更新

 
    事務的處理
     關閉Connection的自動提交
      cnsetAutoCommit(false);
     執行一系列sql語句
      要點執行每一個新的sql語句前上一次執行sql語句的Statement(或者PreparedStatemet)必須先close
     Statement sm ;
     sm = cncreateStatement(insert into user);
     smexecuteUpdate();
     smclose();

     sm = cncreateStatement(insert into corp);
     smexecuteUpdate();
     smclose();

     提交
      cncommit();
     如果發生異常那麼回滾
      cnrollback();


From:http://tw.wingwit.com/Article/program/SQL/201311/16350.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.