添加刪除更新均可用以下事務
import java.sql.Connection; import java.sql.SQLException; import com.jfinal.plugin.activerecord.Db; import com.jfinal.plugin.activerecord.DbKit; /** * @author 馬家立 * @version 創建時間:2019年11月27日下午3:14:10 * @Description:TODO 事務測試類 */ public class Transaction { /** * @Title:addTransaction * @author:馬家立 * @date:2019年11月27日 下午3:23:06 * @Description:TODO 事務測試 * @return boolean */ public boolean addTransaction() { // 返回結果狀態 boolean result = false; // 聲明數據庫連接 Connection conn = null; try { conn = DbKit.getConfig().getDataSource().getConnection(); DbKit.getConfig().setThreadLocalConnection(conn); // 自動提交表成fasle:手動提交 conn.setAutoCommit(false); // 設置事務隔離級別:可默認 // conn.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED); Db.update("delete from nice where note = '111'"); Db.update("delete from nice where note = '222'"); Db.update("delete from nice where note = '333'"); // 無異常提交 conn.commit(); result = true; System.out.println("事務操作成功"); } catch (Exception e) { result = false; e.printStackTrace(); System.err.println("事務操作失敗"); try { // 異常回滾 conn.rollback(); } catch (SQLException eSql) { eSql.printStackTrace(); System.err.println("Connection 回滾失敗"); } } finally { if (null != conn) { try { // 關閉連接 conn.close(); } catch (SQLException eSql) { eSql.printStackTrace(); System.err.println("Connection 關閉失敗"); } } DbKit.getConfig().removeThreadLocalConnection(); } return result; } }