Subtable-Plugin
MyBatis分表插件,对MyBatis代码无侵入,不改变对MyBatis的使用习惯。
使用示例
1、mybatis-config.xml配置文件添加插件
<plugins>
<plugin interceptor="org.jwxa.mybatis.subtable.plugin.SubTablePlugin" />
</plugins>
2、需要分表的Mapper/Dao类添加@SubTable注解,使用strategyClass指定分表策略类
@SubTable(strategyClass=LongStrategy.class)
3、不需要分表的方法添加@SubTableIgnore注解
@SubTableIgnore
List<User> getList();
联系
1、有需要源码的同学,发送“MyBatis分表分库”到1829003685@qq.com 获取
分表策略
- 自定义分表策略需要实现
org.jwxa.mybatis.subtable.strategy.Strategy接口,实现getFinalTable获取最终表名方法。 StrategyUtil工具类提供常用分表策略方法。
**使用示例:**使用Long类型id分表,10张分表
public class LongStrategy implements Strategy {
@Override
public String getFinalTable(String baseTableName, Object params) {
Long flag = -1l;
if(params instanceof User) {
flag = ((User)params).getId();
}else if(params instanceof Long) {
flag = (Long) params;
}
return StrategyUtil.getHashTable(baseTableName, "_", flag, 10);
}
}
测试示例说明