springboot mybatis 多数据源实例
所属分类 mybatis
浏览量 1082
多数据源
业务垂直拆分 不同的业务 不同的库 不同的表
DataSource1Config
DataSource2Config
每个数据源配置独立的
DataSource SqlSessionFactory DataSourceTransactionManager SqlSessionTemplate
dao sqlSession SqlSessionFactory dataSource
不同的dao 绑定对应的 sqlSession SqlSessionFactory dataSource
SqlSessionFactory configuration environment dataSource
H2Config 配置H2 控制台
可连接 db1 db2 数据 ,查看表数据
http://127.0.0.1:8080/h2
DBInitBean 数据库初始化
内存模式
db1 t_user
db2 t_hero
从 文件读取 sql ,逐条执行
@Resource
private SqlSessionFactory db1SqlSessionFactory;
@Resource
private SqlSessionFactory db2SqlSessionFactory;
注入两个 SqlSessionFactory
SqlSession session = sqlSessionFactory.openSession(true);
session.getConnection().createStatement().executeUpdate(sql);
@Resource 默认按name 注入
@Autowired 默认按类型注入 ,有多个候选bean时,配合 @Qualifier 使用
@Autowired
@Qualifier("db1SqlSessionFactory")
private SqlSessionFactory db1SqlSessionFactory;
@Autowired
@Qualifier("db2SqlSessionFactory")
private SqlSessionFactory db2SqlSessionFactory;
测试url
http://127.0.0.1:8080/test/getAllUser
http://127.0.0.1:8080/test/getAllHero
完整代码
https://gitee.com/dyyx/demos/tree/master/springboot-mybatis-mulidatasource
参考资料
Autowired和Resource注解的区别
上一篇
下一篇
mybatis独立使用(不依赖spring)
mybatis中 DefaultSqlSessionFactory和SqlSessionManager的区别
mybatis 代码方式创建 SqlSessionFactory
贝尔宾团队角色理论:优秀团队的9种角色
RocketMQ Kafka 简单比较
如何手工触发fullgc