SpringBoot整合MyBatis实现分库分表⽅案
SpringBoot整合MyBatis实现分库分表⽅案
springboot aopSpringBoot整合Mybatis实现分库分表查询, 这⾥不讲解SpringBoot如何整合MyBatis ,只讲解SpringBoot整合MyBatis下的实现分库分表的实现⽅案。
#⼤概的实现思路
我们知道MyBatis的mapper对象是通过动态代理创建出来的,通过SqlSession中的getMapper⽅法来获取mapper的实例对象,SqlSession是通过SqlSessionFactory对象创建出来,SqlSessionFactory中维护着DataSource对象, 如果我们有很多库,我们是不是可以创建多个SqlSessionFactory,不同的数据源来创建多个SqlSessionFactory对象然后维护于Spring容器中。当我们需要指定库查询的时候,只需要到Spring容器中不同的SqlSessionFactory的Bean对象是不是就可以实现数据源路由切换。
⽐如我有⼀个租户系统,每个租户数据都放在不同的库⾥⾯,每个租户和Spring容器中的SqlSessionFactory有所关联 ,当我们租户登录的时候到SqlSessionFactory对象,这样以后的查询使⽤SqlSessionFactory去查询,这样是不是就可以实现多租户分库案例。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。