僅供參考
mybatis-spring – MyBatis-Spring | 第四章 事務(wù)
《Spring技術(shù)內(nèi)幕》學(xué)習(xí)筆記16——Spring具體事務(wù)處理器的實(shí)現(xiàn) - CSDN博客
項(xiàng)目中混用mybaits和jpa.連接池使用druid.如何處理事務(wù)。
使用 MyBatis-Spring 的主要原因是它允許 MyBatis 參與到 Spring 的事務(wù)管理中。而 不是給 MyBatis 創(chuàng)建一個(gè)新的特定的事務(wù)管理器,MyBatis-Spring 利用了存在于 Spring 中的 DataSourceTransactionManager。
一旦 Spring 的 PlatformTransactionManager 配置好了,你可以在 Spring 中以你通常的做 法來配置事務(wù)。@Transactional 注解和 AOP(Aspect-Oriented Program,面向切面編程,譯 者注)樣式的配置都是支持的。在事務(wù)處理期間,一個(gè)單獨(dú)的 SqlSession 對(duì)象將會(huì)被創(chuàng)建 和使用。當(dāng)事務(wù)完成時(shí),這個(gè) session 會(huì)以合適的方式提交或回滾。
一旦事務(wù)創(chuàng)建之后,MyBatis-Spring 將會(huì)透明的管理事務(wù)。在你的 DAO 類中就不需要額 外的代碼了。

指定的 DataSource 一般可以是你使用 Spring 的任意 JDBC DataSource。這包含了連接 池和通過 JNDI 查找獲得的 DataSource。
要注意, 為事務(wù)管理器指定的 DataSource 必須和用來創(chuàng)建 SqlSessionFactoryBean 的 是同一個(gè)數(shù)據(jù)源,否則事務(wù)管理器就無法工作了。