要实现事务处理,就得从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