前言
公司项目由老的.net项目,迁移为现在的springcloud。迁移是个比较漫长的过程,导致公司现有数据源SqlServer和Mybatis两种。相对于单数据源,PageHelper分页插件,几乎不用而配置即可使用,而双数据源切换会导致语法报错。
PageHelper分页插件需要设定一个默认的数据库源,而SqlServer、mysql的部分语法不同。例如先用mysql查询时,分页插件默认使用mysql语句,切换sqlserver后,却依然使用mysql语法,导致查询失败。
例如,查询前一百条狗狗的姓名:
mysql: SELECT name FROM tbl_dog LIMIT100;
sqlserver: SELECT TOP 100 name FROM tbl_dog;
解决思路:
先配置多数据源,再配置多个SqlSessionFactory指定不同包路径下的mapper使用不同的数据源,此时不同的dao层就可以访问不同数据源。
一.配置数据源
所用到的技术:springboot、mybatis、druid、mysql、sqlserver。
确保自己两个不同的数据库,本文以mysql和sqlserver为例(其他数据源原理相同)
❶ pom.xml中导入相关依赖插件
<!--分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>