首页  

springboot mybatis 多数据源实例     所属分类 mybatis 浏览量 137
多数据源 
业务垂直拆分 不同的业务 不同的库 不同的表


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