JAVA學習筆記(五十四)- 事務Transaction與批處理

來源:互聯網
上載者:User

標籤:transaction   事務   批處理   引擎   

事務Transaction
/* * 事務Transaction * JDBC預設開啟自動認可事務,需要關閉,才能手動控制事務 *  * 預設MySQL儲存引擎為My...,其不支援交易處理,修改為InnoDB引擎 * create table 表名(  ) engine=InnoDB default charset=utf8; *  * InnoDB引擎預設關閉自動事務提交,修改MySQL為自動認可事務 * set autocommit=1;  //1表示自動認可,0表示關閉自動認可 * show variables like ‘autocommit‘; */public class Test01 {    public static void main(String[] args) {        Connection conn = null;        PreparedStatement pstmt = null;        ResultSet rs = null;        conn = DBUtil.getConnection();        try {            conn.setAutoCommit(false);//關閉自動認可事務,手動控制事務            String sql = "insert into user values (null,‘eee‘,‘123‘)";            pstmt = conn.prepareStatement(sql);            pstmt.executeUpdate(); //插入第一個使用者            String sql2="insert into user values (‘fff‘,‘123‘)";            pstmt=conn.prepareStatement(sql2);            pstmt.executeUpdate();//插入第二個使用者            conn.commit();//提交事務            System.out.println("插入使用者成功!");        } catch (SQLException e) {            System.out.println("出現異常,復原事務");            try {                conn.rollback();//復原事務            } catch (SQLException e1) {                e1.printStackTrace();            }        } finally {            DBUtil.closeAll(rs, pstmt, conn);        }    }}
批處理
/* * 批處理 */public class Test02 {    Connection conn = null;    Statement stmt = null;    PreparedStatement pstmt=null;    ResultSet rs = null;    public void test01() {        try {            conn = DBUtil.getConnection();            stmt = conn.createStatement();            // 添加批處理語句            stmt.addBatch("insert into user values (null,‘s001‘,‘123‘)");            stmt.addBatch("insert into user values (null,‘s002‘,‘123‘)");            stmt.addBatch("insert into user values (null,‘s003‘,‘123‘)");            // 執行批處理            int[] nums = stmt.executeBatch();            System.out.println(Arrays.toString(nums));        } catch (SQLException e) {            e.printStackTrace();        } finally {            DBUtil.closeAll(rs, stmt, conn);        }    }    public void test02() {        try {            conn = DBUtil.getConnection();            conn.setAutoCommit(false);            pstmt=conn.prepareStatement("insert into user values (null,?,?)");            // 添加批處理語句            pstmt.setObject(1, "t001");            pstmt.setObject(2, "123");            pstmt.addBatch();            pstmt.setObject(1, "t002");            pstmt.setObject(2, "123");            pstmt.addBatch();            pstmt.setObject(1, "t003");            pstmt.setObject(2, "123");            pstmt.addBatch();            // 執行批處理            int[] nums=pstmt.executeBatch();            System.out.println(Arrays.toString(nums));            conn.commit();        } catch (SQLException e) {            try {                conn.rollback();            } catch (SQLException e1) {                e1.printStackTrace();            }            e.printStackTrace();        } finally {            DBUtil.closeAll(rs, stmt, conn);        }    }    public static void main(String[] args) {        Test02 test = new Test02();        test.test02();    }}

JAVA學習筆記(五十四)- 事務Transaction與批處理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.