分享

必须同时成功失败的方法

 流浪在北京 2010-09-22

import java.sql.*;

public class TestTransaction {
//设置默认提交false即setAutoCommit(false),执行完了再commit,try到任何SQLException都要回滚,回滚完了记得将默认提交改回去(true)

 public static void main(String[] args) throws SQLException {

  Connection conn = null;
  String url = "jdbc:oracle:thin:@127.0.0.1:1521:ORCL";
  Statement stmt = null;
  
  try {
   Class.forName("oracle.jdbc.driver.OracleDriver");
   conn = DriverManager.getConnection(url, "scott", "lomboz_eclipse");
   stmt = conn.createStatement();
   conn.setAutoCommit(false);
   stmt.addBatch("insert into dept values(11,'f','ff')");
   stmt.addBatch("insert into dept values(22,'f','ff')");
   stmt.addBatch("insert into dept values(32,'f','ff')");
   stmt.executeBatch();//注意执行在提交前面,不然都提交了还执行什么呢
   conn.commit();
   
  } catch (ClassNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (SQLException e) {
   try {
       if(conn !=null) {
    conn.rollback();//发生语句异常马上回滚
    conn.setAutoCommit(true);//默认的改回去哦
    }
   } catch (SQLException e1){
    e1.printStackTrace();
   }
   e.printStackTrace();
  } finally {
   if(stmt != null) {
    stmt.close();
    stmt = null;
   }
   if(conn != null) {
    conn.close();
    conn = null;
   }
  }
  
 }

}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多