需要准备的环境:
idea 2017.3月
jdk1.8
maven3.1.1
请提前将idea与Maven、jdk配置好,本次项目用的都是比较新的
涉及技术栈:
springmvc
spring4.3.18
mybatisplus3.0.5
sharding-sphere3.1.0
搭建demo步骤:
1、用IDEA新建一个MAVEN webapp项目,
点击next
然后点击next,直到Finish。
2、构建目录结构如下:
我这里列出的是搭建完了之后所有的目录和文件,诸位先把目录文件建起来,然后我在给出文件内容
这里的目录建好之后还需要设置一下,让idea识别目录作用,选择File-Project Structure
设置完成后点击OK.
3、配置文件内容
关于pom.xml
版本号统一管理:
a、集成spring及springmvc, 集成的pom.xml的核心内容如下:
源码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
|
jdbc.properties的配置,是多数据源的配置
spring-mvc.xml
数据源的xml配置
spring-datasource.xml配置文件内容如下:
sharding与spring的集成配置
spring-sharding.xml配置文件,内容如下:
spring-config.xml ,没有做什么,主要是扫描包的问题:
到这里基本上环境就搭建完成了,下面开始测试
需要创建的表:
以及对于的controller、mapper、service、domain等类,还有一个是数据库以及数据库表分片的算法,这个是此次分库分表的核心所在。
DatabaseShardingAlgorithm,数据库的分片算法是按照spring-sharding.xml中配置的策略那样,根据user_id 对2 取模的值,此处的2,是代表有两个数据库。
比如:user_id=45, 那么45%2=1, 那么属于separate_entity_1这个数据库。
同理对于对数据库表的分片是按照TableShardingAlgorithm,根据配置,按照order_id进行对数据库表的个数取模的值,决定是哪个表
例如:335421646632386561%2=1, 那么就在t_order_1表。