SpringBoot+Mybatis-Plus整合Sharding-JDBC5.1.1实现分库分表

本文介绍了如何在SpringBoot项目中使用Mybatis-Plus结合Sharding-JDBC5.1.1实现分库分表。作者分享了在整合过程中遇到的数据源问题和Insert语句不支持分表路由的问题及其解决方案,并提供了配置maven依赖、创建表、编写实体类、controller、mapper和配置文件的步骤。测试部分展示了插入数据、单个查询、全查询、分页查询和非分片属性查询等操作。
摘要由CSDN通过智能技术生成

一、前言

小编最近一直在研究关于分库分表的东西,前几天docker安装了mycat实现了分库分表,但是都在说mycat的bug很多。很多人还是倾向于shardingsphere,其实他是一个全家桶,有JDBC、Proxy 和 Sidecar组成,小编今天以最简单的JDBC来简单整合一下! 现在最新版已经是5.1.1,经过一天的研究用于解决了所有问题,完成了单库分表!!

想了解4.0.0版本的可以看一下小编刚刚写的:SpringBoot+Mybatis-Plus整合Sharding-JDBC4.0.0实现单库分表 如果想看mycat的可以看一下小编之前写的文章哈:Docker安装Mycat和Mysql进行水平分库分表实战

二、踩过的坑

1. 数据源问题

不要使用druid-spring-boot-starter这个依赖,启动会有问题

<dependency>-->
	<groupId>com.alibaba</groupId>
	<artifactId>druid-spring-boot-starter</artifactId>
	<version>1.1.21</version>
/dependency>

报错信息:

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userMapper' defined in file 
[D:\jiawayun\demo\target\classes\com\example\demo\mapper\UserMapper.class]:
 Invocation of init method failed; nested exception is 
 java.lang.IllegalArgumentException: Property 'sqlSessionFactory' 
 or 'sqlSessionTemplate' are required

==解决方案:==

使用单独的druid

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.2.8</version>
</dependency>

建议使用==默认的数据源==,sharding-jdbc也是使用的默认的数据源,小编使用的自带的,忘记druid后面会不会有问题了!!

type: com.zaxxer.hikari.HikariDataSource

2. Insert 语句不支持分表路由到多个数据节点

报错信息: Insert statement does not support sharding table routing to multiple data nodes.

解决方案: 看小编文章:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值