Spring 学习系列 -- Spring + Mybatis 从零开始配置多数据源访问
目的:
? ? 项目中以前有整合mybatis + spring操作数据库,但是以前都是单数据库,现需要实现mybatis访问多数据源,依旧使用spring调用mybatis。
? ? 通过注解的方式整合 spring + mybatis 多数据源,同时使两者能够执行事务操作
? ? 网上虽然也有类似的文章,但是或多或少有些问题。先将我的解决方法记录下来,以供参考。
?
步骤
?
导入相关的包
?
有2个数据库,分别是spring1 和 spring2spring1 有表:teacher和数据
?
?各个包说明:com.my.teacher.pojo,com.my.student.pojo:和表结构一一对应的pojo类Teacher类:?TeacherMapper类和对应的mapper.xml?
com.my.student.dao,com.my.student.dao.imp:调用mapper,逐个获取student、teacher记录??mybatis_teacher.xml:spring1的mybatis配置xml 和?mybatis_student相似?spring_student.xml:spring2的spring配置文件(具体说明见xml里的注释)?spring_teacher.xml:spring1的spring配置文件?重点说明:
?
mybatis + spring 中,多数据库源的配置和单数据源配置和相似,最大的不同时,2个数据源的配置的名称不能相等。如上面配置spring配置xml中?DataSource、SqlSessionFactoryBean、MapperScannerConfigurer、DataSourceTransactionManager等在2个spring配置名称中都不相等。尤其是事务管理类DataSourceTransactionManager,必须通过以下方式开启并进行命名:<tx:annotation-driven transaction-manager="teachaerTransactionManager" />
??
?
? ?同时部分只演示了同时操作2个数据库,事务操作通过更新操作才能够更好演示出来,其实以上已经实现事务了,这里就省略步骤了。
? ?以上内容源代码见附近
?
?
参考文献:
Spring下mybatis多数据源配置 ??