Spring Boot2 系列教程(二十二)整合 MyBatis 多数据源,迄今为止讲解的最详细的一篇

runtime

多数据源配置


接下来配置多数据源,这里基本上还是和 JdbcTemplate 多数据源的配置方式一致,首先在 application.properties 中配置数据库基本信息,然后提供两个 DataSource 即可,这里我再把代码贴出来,里边的道理条条框框的,大伙可以参考前面的文章,这里不再赘述。

application.properties 中的配置:

spring.datasource.one.url=jdbc:mysql:///test01?useUnicode=true&characterEncoding=utf-8

spring.datasource.one.username=root

spring.datasource.one.password=root

spring.datasource.one.type=com.alibaba.druid.pool.DruidDataSource

spring.datasource.two.url=jdbc:mysql:///test02?useUnicode=true&characterEncoding=utf-8

spring.datasource.two.username=root

spring.datasource.two.password=root

spring.datasource.two.type=com.alibaba.druid.pool.DruidDataSource

然后再提供两个 DataSource,如下:

@Configuration

public class DataSourceConfig {

@Bean

@ConfigurationProperties(prefix = “spring.datasource.one”)

DataSource dsOne() {

return DruidDataSourceBuilder.create().build();

}

@Bean

@ConfigurationProperties(prefix = “spring.datasource.two”)

DataSource dsTwo() {

return DruidDataSourceBuilder.create().build();

}

}

MyBatis 配置


接下来则是 MyBatis 的配置,不同于 JdbcTemplate,MyBatis 的配置要稍微麻烦一些,因为要提供两个 Bean,因此这里两个数据源我将在两个类中分开来配置,首先来看第一个数据源的配置:

@Configuration

@MapperScan(basePackages = “org.javaboy.mybatis.mapper1”,sqlSessionFactoryRef = “sqlSessionFactory1”,sqlSessionTemplateRef = “sqlSessionTemplate1”)

public class MyBatisConfigOne {

@Resource(name = “dsOne”)

DataSource dsOne;

@Bean

SqlSessionFactory sqlSessionFactory1() {

SqlSessionFactory sessionFactory = null;

try {

SqlSessionFactoryBean bean = new SqlSessionFactoryBean();

bean.setDataSource(dsOne);

sessionFactory = bean.getObject();

} catch (Exception e) {

e.printStackTrace();

}

return sessionFactory;

}

@Bean

SqlSessionTemplate sqlSessionTemplate1() {

return new SqlSessionTemplate(sqlSessionFactory1());

}

}

创建 MyBatisConfigOne 类,首先指明该类是一个配置类,配置类中要扫描的包是 org.javaboy.mybatis.mapper1 ,即该包下的 Mapper 接口将操作 dsOne 中的数据,对应的 SqlSessionFactory 和 SqlSessio

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值