当前位置:首页 > 数据库 > MyBatis分表分库插件的实现(推荐)

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

2022年11月09日 14:29:08数据库8

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

MyBatis分表分库插件的实现(推荐) _ JavaClub全栈架构师技术笔记

联系

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

作者:it-fans
来源链接:https://blog.csdn.net/me_002/article/details/89216543

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/database/68919.html

分享给朋友:

“MyBatis分表分库插件的实现(推荐)” 的相关文章

SpringBoot+Mybatis框架整合Shiro权限管理

SpringBoot+Mybatis框架整合Shiro权限管理

一、前言 ​ 之前曾分享过一个关于shiro的认证原理的文章,分享了一下shiro的认证流程与shiro中的名词解释,其实shiro作为一款轻量级框架,被应用在各种中小型及大型企业的登录认证和用户授权的模块,有小伙伴称,在用SpringBoot框架,之前用过xml方式进行配置shiro框架,...

SpringBoot 整合sharding jdbc实现分库分表

SpringBoot 整合sharding jdbc实现分库分表

引言 本篇文章介绍了如何快速整合sharding-jdbc,以及核心概念介绍。 开整 核心概念 逻辑表:水平拆分的数据库的相同逻辑和数据结构表的总称 真实表:在分片的数据库中真实存在的物理表。 数据节点:数据分...

easy-table-vue+VueJs、SpringBoot+Mybatis实现MVVM模型前后台数据交互

easy-table-vue+VueJs、SpringBoot+Mybatis实现MVVM模型前后台数据交互

该项目分为前端展示部分和后台服务部分。 前端部分   使用的技术是:NodeJs、Webpack、VueJs   使用的组件库是:IVIEW、easy-table-vue   使用的开发工具是:WebStorm  链接:https://pan.b...

springboot整合mybatis详细步骤

springboot整合mybatis详细步骤

springboot2.4.4整合mybatis 一、搭建工程 二、使用mybatis进行数据库操作 三、测试运行 四、总结...

java mybatis org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: ### Error qu...

创建springboot+mybatis+mysql项目

创建springboot+mybatis+mysql项目

创建springboot+mybatis+mysql项目的源码https://download.csdn.net/download/qq_34297287/85245127可以点击上方下载创建springboot+mybatis+mysql项目的源码之后对着步骤来看,也可以跟着以...

Spring+SpringMVC+MyBatis+easyUI整合优化篇(五)结合MockMvc进行服务端的单元测试

前言 承接前一篇文章《Spring+SpringMVC+MyBatis+easyUI整合优化篇(四)单元测试实例》,已经讲解了dao层和service层的单元测试,还有控制器这层也不能漏掉,因此本篇会讲一下MockMvc,及controller控制层的单元测试,相关代码已上传,可...

springboot整合mybatis-plus逆向工程

springboot整合mybatis-plus逆向工程

MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。官方文档 代码生成器 AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 Auto...

Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exc...

今天发现一个简单的错误,详细如下: type Exception report message Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemExc...

Spring+SpringMVC+MyBatis整合进阶篇(四)RESTful实战(前端代码修改)

Spring+SpringMVC+MyBatis整合进阶篇(四)RESTful实战(前端代码修改)

页面的设计和美感与原来的项目并没有太多差别,这也是大部分朋友诟病这个项目的地方,由于暂时只是做一些功能性的实现和优化,因此页面的重构放在了后面的工作计划中,前端样式这次也只是修改了登录页面,其他页面并没有修改,因为这个阶段想要增加的是RESTful和缓存模块以及其他中间件的整合,至于页...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。