36 Star 59 Fork 20

许剑锋 / mybatis-subtable

Create your Gitee Account
Explore and code with more than 5 million developers,Free private repositories !:)
Sign up
Clone or download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

mybatis-subtable

MyBatis分表插件,对MyBatis代码无侵入,不改变对MyBatis的使用习惯。

使用示例

1、mybatis-config.xml配置文件添加插件

<plugins>
	<plugin interceptor="org.jwxa.mybatis.subtable.plugin.SubTablePlugin" />
</plugins>

2、需要分表的Mapper/Dao类添加@SubTable注解,使用strategyClass指定分表策略类

// LongStrategy:自定义分表策略类
@SubTable(strategyClass=LongStrategy.class)

3、不需要分表的方法添加@SubTableIgnore注解

@SubTableIgnore
List<User> getList();

分表策略

  • 自定义分表策略需要实现org.jwxa.mybatis.subtable.strategy.Strategy接口,实现getFinalTable获取最终表名方法。
  • StrategyUtil工具类提供常用分表策略方法。

**使用示例:**使用Long类型id分表,10张分表

// 10张表,用id进行分表
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);
	}
}

测试示例说明

  1. 执行src/test/resources/initsql.sql初始化数据库
  2. 运行MyBatis测试修改mybatis-config.xml数据库配置信息,测试类:org.jwxa.mybatis.subtable.test.DeviceDaoTest
  3. 运行Spring-MyBatis测试修改jdbc.properties数据库配置信息,测试类:org.jwxa.mybatis.subtable.test.spring.UserDaoTest

Comments ( 5 )

Sign in for post a comment

About

MyBatis分表插件 spread retract
Cancel

Releases

No release

Gitee Metrics

Contributors

All

Activities

load more
can not load any more
Java
1
https://gitee.com/xujian_jason/mybatis-subtable.git
git@gitee.com:xujian_jason/mybatis-subtable.git
xujian_jason
mybatis-subtable
mybatis-subtable
master

Search