SpringBoot+MybatisPlus实现sharding-jdbc分库分表的示例代码
介绍
学习sharding-jdbc的分库分表功能,以分库,分表,分库分表三种方式来实现,此文章只展示分库分表,为简洁其余两种分篇写
1.环境搭建
代码结构
数据库搭建(2个mysql数据库),并在2个库下都添加多个相同结构的表
pom.xml依赖
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.20</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency> <dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>sharding-jdbc-spring-boot-starter</artifactId> <version>4.0.0-RC1</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.0.5</version> </dependency> </dependencies>
application.yml (配置文件分离,结构更清晰)
spring: main: allow-bean-definition-overriding: true # 需要配置否则加载数据源报错 是否允许定义重名的bean对象覆盖原有的bean profiles: active: databasetable mybatis-plus: mapperLocations: classpath*:mapper/*Mapper.xml
application-databasetable.yml
# 数据源命名 spring.shardingsphere.datasource.names=book2021,book2022 # datasource1 spring.shardingsphere.datasource.book2021.type=com.alibaba.druid.pool.DruidDataSource spring.shardingsphere.datasource.book2021.driver-class-name=com.mysql.jdbc.Driver spring.shardingsphere.datasource.book2021.url=jdbc:mysql://192.168.31.212:3306/book2021?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowMultiQueries=true spring.shardingsphere.datasource.book2021.username=root spring.shardingsphere.datasource.book2021.password=123 # datasource2 spring.shardingsphere.datasource.book2022.type=com.alibaba.druid.pool.DruidDataSource spring.shardingsphere.datasource.book2022.driver-class-name=com.mysql.jdbc.Driver spring.shardingsphere.datasource.book2022.url=jdbc:mysql://192.168.31.212:3307/book2022?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowMultiQueries=true spring.shardingsphere.datasource.book2022.username=root spring.shardingsphere.datasource.book2022.password=123 #库名.表名 spring.shardingsphere.sharding.tables.book.actual-data-nodes=book202${1..2}.book_info_202${1..2}0${1..9},book202${1..2}.book_info_202${1..2}1${0..2} # 数据库分片字段 spring.shardingsphere.sharding.tables.book.database-strategy.standard.sharding-column=create_time # 数据库分片策略 spring.shardingsphere.sharding.tables.book.database-strategy.standard.preciseAlgorithmClassName=cn.xwl.xshardingjdbc.config.database.PreciseDatabaseShardingAlgorithm spring.shardingsphere.sharding.tables.book.database-strategy.standard.rangeAlgorithmClassName=cn.xwl.xshardingjdbc.config.database.RangeDatabaseShardingAlgorithm # 数据表分片字段 spring.shardingsphere.sharding.tables.book.table-strategy.standard.sharding-column=create_time # 数据表分表策略 spring.shardingsphere.sharding.tables.book.table-strategy.standard.preciseAlgorithmClassName=cn.xwl.xshardingjdbc.config.table.PreciseTableShardingAlgorithm spring.shardingsphere.sharding.tables.book.table-strategy.standard.rangeAlgorithmClassName=cn.xwl.xshardingjdbc.config.table.RangeTableShardingAlgorithm # 打印sql spring.shardingsphere.props.sql.show=true
2.代码编写
同分库,分表两篇文中的一致,这里不粘贴了,项目地址 本测试Demo的Gitee地址
到此这篇关于SpringBoot+MybatisPlus实现sharding-jdbc分库分表的示例代码的文章就介绍到这了,更多相关SpringBoot MybatisPlus sharding-jdbc分库分表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
- SpringBoot 2.0 整合sharding-jdbc中间件实现数据分库分表
- Spring Boot 集成 Sharding-JDBC + Mybatis-Plus 实现分库分表功能
- Sharding-Jdbc 自定义复合分片的实现(分库分表)
- Java使用Sharding-JDBC分库分表进行操作
- SpringBoot整合sharding-jdbc实现分库分表与读写分离的示例
- SpringBoot整合sharding-jdbc实现自定义分库分表的实践
- 利用Sharding-Jdbc进行分库分表的操作代码
- SpringBoot+MybatisPlus+Mysql+Sharding-JDBC分库分表
- Mybatis-Plus集成Sharding-JDBC与Flyway实现多租户分库分表实战
相关文章
java8 stream 由一个list转化成另一个list案例
这篇文章主要介绍了java8 stream 由一个list转化成另一个list案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-08-08SpringBoot定时任务两种(Spring Schedule 与 Quartz 整合 )实现方法
本篇文章主要介绍了SpringBoot定时任务两种(Spring Schedule 与 Quartz 整合 )实现方法,详细的介绍了Spring Schedule 与 Quartz 整合的两种方法,有兴趣的可以了解一下。2017-03-03IntelliJ IDEA自定义代码提示模板Live Templates的图文教程
这篇文章主要介绍了IntelliJ IDEA自定义代码提示模板Live Templates,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-03-03
最新评论