MyBatis分表分库插件的实现(推荐)

Subtable-Plugin

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();

在这里插入图片描述

联系

1、有需要源码的同学,发送“MyBatis分表分库”到1829003685@qq.com 获取

分表策略

  • 自定义分表策略需要实现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
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ShardingSphere:SpringBoot2+MybatisPlus+读写分离+分库分表课程目标快速的掌握读写分离+分表的实战,即插即用适用人群IT从业人员,开发人员,Java从业者,互联网从业者,性能调优人群课程简介ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈。它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(计划中)这3款相互独立的产品组成,shardingSphere定位为关系型数据库中间件。 Sharding-JDBCSharding-JDBC是Sharding-Sphere的第一个产品,也是Sharding-Sphere的前身,是当当网开源的一个产品。定位为轻量级的Java框架,在Java的JDBC层提供额外服务。 它使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完全兼容JDBC和各种ORM框架。他们均提供标准化的数据分片、读写分离、柔性事务和数据治理功能,可适用于如Java同构、异构语言、容器、云原生等各种多样化的应用场景。Sharding-JDBC可以通过Java,YAML,Spring命名空间和Spring Boot Starter四种方式配置,开发者可根据场景选择适合的配置方式。课程特色 本章节以尽量短的时间,为使用者提供最简单的ShardingSphere的快速入门。课程说明该课程属于系列课程,分为读写分离,分库分表,不分库分表分库分表,读写分离+分库分表共5个回合。本课程属于其中一个回合,请各位小哥哥们注意,课程的标题哦~

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI知识研学圈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值