前言
在实际开发中我们往往要实现多个数据源的信息操作,比如查询一个数据源的名称时,还要将该数据的其他信息从另一个数据源中提取,这里我使用的是静态的方法,也就是把各个不同的数据源配置在各自的配置文件config中,让每个Mapper都有对应的config文件配置。
这里感谢其他博主的分享,参考文章:springBoot 动态数据源以及Mybatis多数据源
废话不多说,先把整个项目的结构说一下:
这个项目的名称是doubleidea,包使用默认的com.example
下面来解释一下各个包的内容
config包中 DatasourceConfig文件是将我们在application.properties中配置的多数据源读取并使用@Bean标签声明;MybatisDbAConfig和MybatisDbBConfig分别实现了两个数据源的sqlSessionFactory和SqlSessionTemplate两个方法,其实就是在读取之前的@Bean下的数据库中操作的实体类和放在xml中的sql语句。
Controller包中的文件就是映射和适配对应的方法,这里我仅实现了数据查看
one/mapper和two/mapper两个包的接口内容大体一致,都是声明对应的xml文件中的id里的方法,进行数据操作
Person包中的两个实体类就是对应的两个数据库中的表名
在简单了解了项目的结构后,我们就可以开始我们的项目了,
第一步、先将我们的pom.xml文件配置依赖,导入jar包
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId&g