SpringBoot2+Sharding-JDBC实现单库分表

由于项目的数据量越来越大,今天利用Sharding-JDBC来进行分表操作。

Maven依赖如下:

<dependency>
	<groupId>io.shardingsphere</groupId>
	<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
	<version>3.0.0</version>
</dependency>
		
<dependency>
	<groupId>io.shardingsphere</groupId>
	<artifactId>sharding-jdbc-spring-namespace</artifactId>
	<version>3.0.0</version>
</dependency>

Sping的配置文件如下:

#JPA配置
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.hibernate.ddl-auto=none
spring.jpa.properties.show_sql = true
spring.jpa.properties.use_sql_comments = false
spring.jpa.properties.format_sql = false


logging.level.org.springframework.info = INFO


sharding.jdbc.datasource.names=ds0

sharding.jdbc.datasource.ds0.type=com.zaxxer.hikari.HikariDataSource
sharding.jdbc.datasource.ds0.driverClassName=com.mysql.jdbc.Driver
sharding.jdbc.datasource.ds0.jdbcUrl=jdbc:mysql://localhost:3306/test
sharding.jdbc.datasource.ds0.username=root
sharding.jdbc.datasource.ds0.password=

#配置全局策略
sharding.jdbc.config.sharding.default-database-strategy.inline.sharding-column=id
sharding.jdbc.config.sharding.default-database-strategy.inline.algorithm-expression=ds0

##login_user_log
sharding.jdbc.config.sharding.tables.login_user_log.actual-data-nodes=ds0.login_user_log_${0..2}
sharding.jdbc.config.sharding.tables.login_user_log.table-strategy.inline.sharding-column=user_id
sharding.jdbc.config.sharding.tables.login_user_log.table-strategy.inline.algorithm-expression=login_user_log_$->{ user_id % 2 }


##user_course
sharding.jdbc.config.sharding.tables.user_course.actual-data-nodes=ds0.user_course_${0..2}
sharding.jdbc.config.sharding.tables.user_course.table-strategy.inline.sharding-column=user_id
sharding.jdbc.config.sharding.tables.user_course.table-strategy.inline.algorithm-expression=user_course_$->{ user_id % 2 }

sharding.jdbc.config.sharding.binding-tables=login_user_log,user_course
sharding.jdbc.config.sharding.default-data-source-name=ds0
sharding.jdbc.config.sharding.props.sql.show=true

以上就是全部的配置文件了。

这里有个坑,大家需要注意下,如果你项目中使用的是JPA的话,那么Jpa默认的pageable分页是没有办法用的,findAll()可以正常返回list,但是Pageable就不行了,具体问题不明。

有问题可以在下面评论,技术问题可以私聊我。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值