sharding-sphere之分库分表demo

需要准备的环境
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项目,

sharding-sphere之分库分表demo_第1张图片

点击next

sharding-sphere之分库分表demo_第2张图片

然后点击next,直到Finish。

2、构建目录结构如下:
我这里列出的是搭建完了之后所有的目录和文件,诸位先把目录文件建起来,然后我在给出文件内容

sharding-sphere之分库分表demo_第3张图片

这里的目录建好之后还需要设置一下,让idea识别目录作用,选择File-Project Structure

sharding-sphere之分库分表demo_第4张图片

设置完成后点击OK.

3、配置文件内容
关于pom.xml
版本号统一管理:

sharding-sphere之分库分表demo_第5张图片

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

<dependency>

<groupId>org.springframeworkgroupId>

<artifactId>spring-coreartifactId>

<version>${spring.version}version>

dependency>

<dependency>

<groupId>org.springframeworkgroupId>

<artifactId>spring-beansartifactId>

<version>${spring.version}version>

dependency>

<dependency>

<groupId>org.springframeworkgroupId>

<artifactId>spring-contextartifactId>

<version>${spring.version}version>

dependency>

<dependency>

<groupId>org.springframeworkgroupId>

<artifactId>spring-context-supportartifactId>

<version>${spring.version}version>

dependency>

<dependency>

<groupId>org.springframeworkgroupId>

<artifactId>spring-txartifactId>

<version>${spring.version}version>

dependency>

<dependency>

<groupId>org.springframeworkgroupId>

<artifactId>spring-webartifactId>

<version>${spring.version}version>

dependency>

<dependency>

<groupId>org.springframeworkgroupId>

<artifactId>spring-webmvcartifactId>

<version>${spring.version}version>

dependency>

<dependency>

<groupId>org.springframeworkgroupId>

<artifactId>spring-jdbcartifactId>

<version>${spring.version}version>

dependency>

<dependency>

<groupId>org.springframeworkgroupId>

<artifactId>spring-testartifactId>

<version>${spring.version}version>

dependency>

b、集成mybatis-plus

<dependency>

<groupId>com.baomidougroupId>

<artifactId>mybatis-plusartifactId>

<version>${mybatis.plus.version}version>

dependency>

<dependency>

<groupId>mysqlgroupId>

<artifactId>mysql-connector-javaartifactId>

<version>${mysql.connector.java.version}version>

dependency>

<dependency>

<groupId>com.alibabagroupId>

<artifactId>druidartifactId>

<version>${druid.version}version>

dependency>

c、集成sharding-sphere

<dependency>

<groupId>io.shardingspheregroupId>

<artifactId>sharding-jdbc-coreartifactId>

<version>${sharding-jdbc.version}version>

dependency>

<dependency>

<groupId>io.shardingspheregroupId>

<artifactId>sharding-jdbc-spring-namespaceartifactId>

<version>${sharding-jdbc.version}version>

dependency>

jdbc.properties的配置,是多数据源的配置

sharding-sphere之分库分表demo_第6张图片

spring-mvc.xml

sharding-sphere之分库分表demo_第7张图片

数据源的xml配置
spring-datasource.xml配置文件内容如下:

sharding-sphere之分库分表demo_第8张图片

sharding与spring的集成配置
spring-sharding.xml配置文件,内容如下:

sharding-sphere之分库分表demo_第9张图片

spring-config.xml ,没有做什么,主要是扫描包的问题:

sharding-sphere之分库分表demo_第10张图片

到这里基本上环境就搭建完成了,下面开始测试
需要创建的表:

以及对于的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表。

 

你可能感兴趣的:(sharding-sphere之分库分表demo)