您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“java中如何使用Connection管理事務(wù)”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“java中如何使用Connection管理事務(wù)”吧!
1、管理事務(wù)
(1)開啟事務(wù)setAutoCommit
調(diào)用該方法設(shè)置參數(shù)為false,即開啟事務(wù)。
在執(zhí)行sql之前開啟事務(wù)。
(2)提交事務(wù):commit()
當(dāng)所有sql都執(zhí)行完提交事務(wù)。
(3)回滾事務(wù):rollback()
在catch中回滾事務(wù)。
2、實(shí)例
public static void main(String[] args) { Connection conn = null; PreparedStatement pstmt1 = null; PreparedStatement pstmt2 = null; try { //1.獲取連接 conn = JDBCUtils.getConnection(); //開啟事務(wù) conn.setAutoCommit(false); //2.定義sql //2.1 張三 - 500 String sql1 = "update account set balance = balance - ? where id = ?"; //2.2 李四 + 500 String sql2 = "update account set balance = balance + ? where id = ?"; //3.獲取執(zhí)行sql對象 pstmt1 = conn.prepareStatement(sql1); pstmt2 = conn.prepareStatement(sql2); //4. 設(shè)置參數(shù) pstmt1.setDouble(1,500); pstmt1.setInt(2,1); pstmt2.setDouble(1,500); pstmt2.setInt(2,2); //5.執(zhí)行sql pstmt1.executeUpdate(); // 手動制造異常 int i = 3/0; pstmt2.executeUpdate(); //提交事務(wù) conn.commit(); } catch (Exception e) { //事務(wù)回滾 try { if(conn != null) { conn.rollback(); } } catch (SQLException e1) { e1.printStackTrace(); } e.printStackTrace(); }finally { //關(guān)閉資源 JDBCUtils.close(pstmt1,conn); JDBCUtils.close(pstmt2,null); }
到此,相信大家對“java中如何使用Connection管理事務(wù)”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。