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 {@Overridepublic 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

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

  1. 数据库中间件(分表分库路由)

    分区:对业务透明,分区只不过把存放数据的文件分成了许多小块,例如mysql中的一张表对应三个文件.MYD,MYI,frm. 根据一定的规则把数据文件(MYD)和索引文件(MYI)进行了分割,分区后的表 ...

  2. 学会数据库读写分离、分表分库

    https://www.cnblogs.com/joylee/p/7513038.html 系统开发中,数据库是非常重要的一个点.除了程序的本身的优化,如:SQL语句优化.代码优化,数据库的处理本身优 ...

  3. .Net 下高性能分表分库组件-连ShardingCore接模式原理

    ShardingCore 一款ef-core下高性能.轻量级针对分表分库读写分离的解决方案,具有零依赖.零学习成本.零业务代码入侵. Github Source Code 助力dotnet 生态 Gi ...

  4. Abp VNext 集成sharding-core 分表分库

    ShardingCore 易用.简单.高性能.普适性,是一款扩展针对efcore生态下的分表分库的扩展解决方案,支持efcore2+的所有版本,支持efcore2+的所有数据库.支持自定义路由.动态路 ...

  5. [NewLife.XCode]分表分库(百亿级大数据存储)

    NewLife.XCode是一个有15年历史的开源数据中间件,支持netcore/net45/net40,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量 ...

  6. mysql如何根据业务分表设计_mysql分表分库的应用场景和设计方式

    很多朋友在论坛和留言区域问mysql在什么情况下才需要进行分库分表,以及采用何种设计方式才是最优的选择,根据这些问题,小编为大家整理了关于MySQL分库分表的应用场景和最优的设计方式举例. 一. 分表 ...

  7. .NETCore 下支持分表分库、读写分离的通用 Repository

    首先声明这篇文章不是标题党,我说的这个类库是 FreeSql.Repository,它作为扩展库现实了通用仓储层功能,接口规范参数 abp vnext,定义和实现基础的仓储层(CURD). 安装 do ...

  8. asp.net mysql 读写分离_.NET Core实现分表分库、读写分离的通用 Repository功能

    首先声明这篇文章不是标题党,我说的这个类库是 FreeSql.Repository,它作为扩展库现实了通用仓储层功能,接口规范参考 abp vnext 定义,实现了基础的仓储层(CURD). 安装 d ...

  9. 由mysql分区想到的分表分库的方案

    在分区分库分表前一定要了解分区分库分表的动机. 对实时性要求比较高的场景,使用数据库的分区分表分库. 对实时性要求不高的场景,可以考虑使用索引库(es/solr)或者大数据hadoop平台来解决(如数 ...

最新文章

  1. 用C#对ADO.NET数据库完成简单操作
  2. 广东省生态土壤所孙蔚旻团队FEMS: 砷锑污染土壤剖面的微生物世界
  3. CoGAN pytorch
  4. aws python lambda_AWS Lambda
  5. pygame (1) 移动小乌龟
  6. 守护(后台)进程的创建
  7. C++ ActiveX开发的问题讨论
  8. 用simulink分析傅里叶变换、短时傅里叶变换和小波变换
  9. .net 发布程序时出现“类型ASP.global_asax同时存在于...”错误的解决办法
  10. php包含文件不存在,PHP包含文件错误,服务器有该文件,直接访问提示不存在
  11. dev grid 常用方法
  12. html事件绑定的方法,如何获取html元素所绑定的事件
  13. 北京市房山区卫星地图下载
  14. 微小宝编辑器修改html代码,怎么在微小宝编辑器提取永久链接
  15. opencv之c++环境搭建linux、windows
  16. Java网络编程之实现资源下载详解【王道Java】
  17. 甲骨文华育兴业|【大数据调查】80%的程序员年薪都在10万以上,三分之一的人年薪20万以上
  18. H5和原生APP之间的区别
  19. 第一节 使用ISM Web组态软件采集Modbus设备数据
  20. 三星n9008 android 6.0,三星note3_三星n9008s_三星n9008s更新6.0

热门文章

  1. c语言小游戏吧,【图片】C语言小游戏~贪吃蛇【c语言吧】_百度贴吧
  2. linux 执行命令特别慢,Linux运行速度太慢的关键原因全都在这了
  3. 计算机丢失strom.dll,win10玩暗黑破坏神2缺少storm.dll怎么解决
  4. java集合框架小札
  5. 网络字体(Web font)文件格式及兼容性说明
  6. SSM框架的仓库管理系统
  7. webpack 搭建vue多单页应用
  8. 数据库级联操作mysql_数据库进阶实践-级联操作 --
  9. 对目前web蜜罐的一些个人总结
  10. Alamofire入门笔记