java分库分表框架搭建_SpringBoot结合Sharding-JDBC实现
分库分表
前⾔:
今天来聊下 SpringBoot 集成 Sharding-JDBC 实现;为此写了⼀个⼩Demo,这个Demo是基于SpringBoot,并集成了 Mybatis、Redis、Swagger(⽣成在线的接⼝⽂档 )、PageHelper(分页⼯具) 等,当然绝对也集成了 Sharding-JDBC ;以及设计了 RestFul 风格的接⼝ ,添加了 单元测试 。
下⾯简单介绍下本⽂的主线:
①、⾸先介绍下Demo的⼯程⽬录,并且介绍下使⽤的基本环境,如:sql、⼯程的l等
②、然后会着重介绍 SpringBoot 集成 Sharding-JDBC 的过程,及 Sharding-JDBC 基本知识 和 注意事项。
1、项⽬信息描述:
完整项⽬在gitHub,地址: github/
如有需要请⾃⼰去 giHub 上拉取代码进⾏查阅,由于本⼈⽔品有限,如有问题请留⾔提出,谢谢!
Demo详解:
1、⼯程⽬录:
2、⼯程环境:
2.1、l :
org.springframework.boot spring-boot-starter-parent 2.0.6.RELEASE
UTF-8
1.7
1.2.0
5.1.39
1.2.41
org.springframework.boot spring-boot-starter-web
org.springframework.boot spring-boot-starter-redis
1.4.7.RELEASE
org.springframework.boot spring-boot-starter-thymeleaf org.springframework.boot spring-boot-devtools
true
springboot框架的作用org.springframework.boot
spring-boot-starter-test
test
org..spring.boot
mybatis-spring-boot-starter
2.0.1
mysql
mysql-connector-java
com.alibaba
druid-spring-boot-starter
1.1.16
com.alibaba
fastjson
${fastjson}
io.springfox
springfox--ui
2.9.2
io.springfox
springfox-swagger2
2.9.2
com.github.pagehelper pagehelper
4.1.6
junit
junit
4.10
org.apache.shardingsphere sharding-jdbc-spring-boot-starter 4.0.0-RC1
cn.hutool
hutool-setting
5.2.4
注意:l 的内容最好不要改动了,因为如果将⾥⾯的⼀些 依赖版本变动了 ,可能会导致依赖版本兼容性问题出现,最终导致程序运⾏失败。
2.2、sql 环境:
①、数据库使⽤的 Mysql,Demo程序运⾏前需要提前创建好数据库,由于使⽤了分库分表,所以需要创建两个库; 数据库名:springboot0、springboot1 。
②、在 springboot0 数据库中执⾏下⾯的sql语句创建表:
DROP TABLE IF EXISTS `t_role`;
CREATE TABLE `t_role` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`role_name` varchar(128) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Table structure for t_user0
-- ----------------------------
DROP TABLE IF EXISTS `t_user0`;
CREATE TABLE `t_user0` (
`id` int(65) NOT NULL AUTO_INCREMENT COMMENT 'id',
`name` varchar(10) DEFAULT NULL COMMENT '姓名',
`age` int(2) DEFAULT NULL COMMENT '年龄',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Table structure for t_user1
-- ----------------------------
DROP TABLE IF EXISTS `t_user1`;
CREATE TABLE `t_user1` (
`id` int(65) NOT NULL AUTO_INCREMENT COMMENT 'id',
`name` varchar(10) DEFAULT NULL COMMENT '姓名',
`age` int(2) DEFAULT NULL COMMENT '年龄',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=35 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Table structure for t_user2
-- ----------------------------
DROP TABLE IF EXISTS `t_user2`;
CREATE TABLE `t_user2` (
`id` int(65) NOT NULL AUTO_INCREMENT COMMENT 'id',
`name` varchar(10) DEFAULT NULL COMMENT '姓名',
`age` int(2) DEFAULT NULL COMMENT '年龄',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=34 DEFAULT CHARSET=utf8;
③、然后在创建的 springboot1 数据库中执⾏sql语句创建表:
DROP TABLE IF EXISTS `t_user0`;
CREATE TABLE `t_user0` (
`id` int(65) NOT NULL AUTO_INCREMENT COMMENT 'id',
`name` varchar(10) DEFAULT NULL COMMENT '姓名',
`age` int(2) DEFAULT NULL COMMENT '年龄',
PRIMARY KEY (`id`)
)
ENGINE=InnoDB AUTO_INCREMENT=36 DEFAULT CHARSET=utf8; -- ----------------------------
-- Table structure for t_user1
-- ----------------------------
DROP TABLE IF EXISTS `t_user1`;
CREATE TABLE `t_user1` (
`id` int(65) NOT NULL AUTO_INCREMENT COMMENT 'id',
`name` varchar(10) DEFAULT NULL COMMENT '姓名',
`age` int(2) DEFAULT NULL COMMENT '年龄',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=34 DEFAULT CHARSET=utf8; -- ----------------------------
-- Table structure for t_user2
-
- ----------------------------
DROP TABLE IF EXISTS `t_user2`;
CREATE TABLE `t_user2` (
`id` int(65) NOT NULL AUTO_INCREMENT COMMENT 'id',
`name` varchar(10) DEFAULT NULL COMMENT '姓名',
`age` int(2) DEFAULT NULL COMMENT '年龄',
PRIMARY KEY (`id`)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论