基于tk.mybatis插件改造实现数据库分表

项目中因部分业务表数据量大,采用tk.mybatis插件进行分表改造。通过实现IDynamicTableName接口和扩展DynamicTableEntity抽象实体类,实现CRUD操作的动态表名。同时,为满足通用Example查询的分表需求,扩展了Example查询对象的构造函数,使得分表后的表名能在原表名基础上动态添加编号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近项目中有几张业务表数据量较其他业务表数据量大很多,所有就考虑分表。因为DAO层使用的是tk.mybatis通用插件,所以就抽时间看了下 tk.mybatis源码,以求得不改变任何业务代码实现个性化分表功能。最终得到以下实现方案。

1、tk.mybatis中有一个IDynamicTableName接口,实现此接口就可在CRUD中实现动态表名。

 

 

 

2、创建DynamicTableEntity抽象实体类,实现IDynamicTableName接口,之后所有与数据库表对应的实体类都要继承该抽象类。实现方法如下,

3、示例业务entity如下UserInfo,@Table注解name属性为未分表前原表名,@DefTable为自定义分表注解,其属性value表示分表个数。

4、如下为@DefTable类容

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值