基于Spring Boot 2.2.0 使用sharding-sphere + Mybatis-Plus 实现主从分离(二)

基于Spring Boot 2.2.0 使用sharding-sphere + Mybatis-Plus 实现主从分离

1.Spring Boot 2.1.6 使用sharding-sphere + Mybatis-Plus 实现分库分表(一)
2.基于Spring Boot 2.2.0 使用sharding-sphere + Mybatis-Plus 实现主从分离(二)
菜鸟学习笔记,大佬请绕路,转载请标明出处

一、创建spring boot项目

这里springboot版本跟之前的不一样,不用在意。

1、pom文件如下
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.2.0.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.example</groupId>
	<artifactId>sharding-sphere2</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>sharding-sphere2</name>
	<description>基于Spring Boot 2.2.0 使用sharding-sphere + Mybatis-Plus 实现主从分离</description>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<optional>true</optional>
		</dependency>
		<!--mysql-->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>runtime</scope>
		</dependency>

		<!--Mybatis-Plus-->
		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus-boot-starter</artifactId>
			<version>3.1.1</version>
		</dependency>
		<!--shardingsphere start-->

		<!-- for spring boot -->
		<dependency>
			<groupId>io.shardingsphere</groupId>
			<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
			<version>3.1.0</version>
		</dependency>
		<!-- for spring namespace -->
		<dependency>
			<groupId>io.shardingsphere</groupId>
			<artifactId>sharding-jdbc-spring-namespace</artifactId>
			<version>3.1.0</version>
		</dependency>
		<!--shardingsphere end-->
		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

2、项目结构图

2.1 总目录
在这里插入图片描述
2.2 实体类
在这里插入图片描述
2.3 dao层
在这里插入图片描述
2.4 service层
在这里插入图片描述
2.5 serviceImpl 层
在这里插入图片描述
2.6 controller 层
在这里插入图片描述

3、application.yml 文件配置
server:
  port: 8061

#mybatis-plus映射mapper文件
mybatis-plus:
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.example.shardingSphere2.entity

sharding:
  jdbc:
    datasource:
      names: master1,salve0 #主从数据源
      master1:
        type: com.zaxxer.hikari.HikariDataSource
        hikari:
          driver-class-name: com.mysql.cj.jdbc.Driver #数据库新的驱动,下面连接url一定要加区时
        jdbc-url: jdbc:mysql://localhost:3306/master1?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
        username: root
        password: 123456
      salve0:
        type: com.zaxxer.hikari.HikariDataSource
        hikari:
          driver-class-name: com.mysql.cj.jdbc.Driver
        jdbc-url: jdbc:mysql://localhost:3306/salve0?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
        username: root
        password: 123456
    config:  #读写分离配置
      masterslave:
        master-data-source-name: master1 #主数据库配置
        slave-data-source-names: salve0 #从数据库配置(多个以逗号隔开)
        load-balance-algorithm-type: round_robin # 提供轮询与随机(random),这里选择用轮询,
        name: ms
      props:
        sql:
          show: true #打印sql日志
spring:
  main:
    allow-bean-definition-overriding: true #设置为true,表示后发现的bean会覆盖之前相同名称的bean。
  application:
    name: sharing-sphere-server2

二、数据库结构

创建master1和salve0数据库,在各自数据库下创建user_info表,这里只是为了演示,所以只用了一个mysql数据库。

DROP TABLE IF EXISTS `user_info`;
CREATE TABLE `user_info` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_name` varchar(20) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4;

三、测试
1.启动项目

如图所示则表明已经启动成功了,因为只有配置了两个数据源,所以这里只有两个HikariPool
在这里插入图片描述

2、用postman向数据库添加数据

在这里插入图片描述
在这里插入图片描述

3、用postman查询数据

这里面要注意的是,由于演示没有真正配置主从数据传输,所以查不到数据,为了达到测试效果,只能手动到salve0添加一条数据。
在这里插入图片描述
在这里插入图片描述
总结:这里只是简单的实现,如有错误,希望大家给予批评指正。
项目地址:https://github.com/Breet1413/shardingsphere

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值