要實現事務處理,就得從SqlSession中取出connection來,然后對connection采用setAutoCommit,commit,rollback等操作,最后的時候,不能像JDBC一樣關閉statement和conn,MyBatis不讓,它硬要自己管理,只好順着它來。具體代碼結構如下:
@Autowired private SqlSession session;
。
。
。
try{ conn = session.getConnection(); conn.setAutoCommit(false); // Access DB conn.commit(); logger.info("committed."); catch(SQLException e){ try { conn.rollback(); logger.info("Rollbacked."); } catch (SQLException ex) { ... } ... } finally { ...// 無須關閉conn }
--END-- 2019年10月26日16:08:57
