##mybatis | mybatis plus 自动分表插件
###已支持自动分表规则
1.按年
2.按月
3.按日
规则目录:package com.mybatis.plug.slicingStrategy;可以在这里自定义分表时间策略
###maven引入
com.mybatis.plug
mybatis-plus-tableslince
1.0-SNAPSHOT
###spring环境配置
spring xml中新增:
spring.xml中修改mybatis plus的配置:
class="com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor"/>
class="com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor"/>
class="com.mybatis.plug.interceptor.TableSlicingInterceptor"/>
被分表的entity上添加注解:
@TableSlicing(slicing = true, value = "SYS_AUTH_LOG", strategy = "DAY")
###spring boot配置
mybatis plus 的@Configuration配置文件中新增:
/**
* 分表插件
*
* @return
*/
@Bean("strategyManager")
public StrategyManager strategyManager() {
StrategyManager strategyManager = new StrategyManager();
Map strategies = new HashMap<>();
strategies.put("YEAR", "com.mybatis.plug.slicingStrategy.ByYearStrategy");
strategies.put("MOUTH", "com.mybatis.plug.slicingStrategy..ByMouthStrategy");
strategies.put("DAY", "com.mybatis.plug.slicingStrategy..ByDayStrategy");
strategyManager.setStrategies(strategies);
Map slicingTables = new HashMap<>();
slicingTables.put("SYSTEM_AUTH_LOG", "cn.buz.models.entity.AuthLog");
slicingTables.put("SYSTEM_LOG4J_RECORDS", "cn.buz.models.entity.Log4jRecords");
strategyManager.setSlicingTables(slicingTables);
return strategyManager;
}
/**
* table分表插件
*/
public TableSlicingInterceptor tableSlicingInterceptor() {
TableSlicingInterceptor slicing = new TableSlicingInterceptor();
return slicing;
}
被分表的entity上添加注解:
@TableSlicing(slicing = true, value = "SYS_AUTH_LOG", strategy = "DAY")
###其他说明
1.目前只在oracle环境下测试过,没有兼容多数据库类型.