MyBatis + MyCat
- MyCat 的 schema.xml 中配置了多个 schema
- 重写 MyBatis 的 MappedStatement 简单实现 MyCat 注解,在返回 BoundSql 前,修改 sql,添加 /*!mycat:schema=数据库*/
Spring Boot + Hibernate
- 通过实现 CurrentTenantIdentifierResolver 获取租户标识
- 通过实现 MultiTenantConnectionProvider 获取租户对应的数据源
- 数据源的管理需要自己或者借助第三方实现,租户标识需要借助拦截器和线程变量实现
Spring AbstractRoutingDataSource
- 实现 AbstractRoutingDataSource 的 determineCurrentLookupKey 获取租户标识
- 数据源管理,初始化 targetDataSources
网友评论