MybatisPlus 学习配置多数据源

Posted 南淮北安

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MybatisPlus 学习配置多数据源相关的知识,希望对你有一定的参考价值。

适用于多种场景:纯粹多库、 读写分离、 一主多从、 混合模式等

目前我们就来模拟一个纯粹多库的一个场景,其他场景类似
场景说明:
我们创建两个库,分别为:mybatis_plus(以前的库不动)与mybatis_plus_1(新建),
将mybatis_plus库的product表移动到mybatis_plus_1库,这样每个库一张表,通过一个测试用例
分别获取用户数据与商品数据,如果获取到说明多库模拟成功

文章目录

一、创建数据库及表

创建数据库mybatis_plus_1和表product

CREATE DATABASE `mybatis_plus_1` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;
	use `mybatis_plus_1`;
	CREATE TABLE product
	(
	id BIGINT(20) NOT NULL COMMENT '主键ID',
	name VARCHAR(30) NULL DEFAULT NULL COMMENT '商品名称',
	price INT(11) DEFAULT 0 COMMENT '价格',
	version INT(11) DEFAULT 0 COMMENT '乐观锁版本号',
	PRIMARY KEY (id)
);

添加测试数据

INSERT INTO product (id, NAME, price) VALUES (1, '外星人笔记本', 100);

删除mybatis_plus库product表

use mybatis_plus;
DROP TABLE IF EXISTS product;

二、引入依赖

<dependency>
	<groupId>com.baomidou</groupId>
	<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
	<version>3.5.0</version>
</dependency>

三、配置多数据源

说明:注释掉之前的数据库连接,添加新配置

spring:
	# 配置数据源信息
	datasource:
		dynamic:
			# 设置默认的数据源或者数据源组,默认值即为master
			primary: master
		# 严格匹配数据源,默认false.true未匹配到指定数据源时抛异常,false使用默认数据源
		strict: false
		datasource:
			master:
				url: jdbc:mysql://localhost:3306/mybatis_plus?characterEncoding=utf-
				8&useSSL=false
				driver-class-name: com.mysql.cj.jdbc.Driver
				username: root
				password: 123456
				slave_1:
				url: jdbc:mysql://localhost:3306/mybatis_plus_1?characterEncoding=utf-8&useSSL=false
				driver-class-name: com.mysql.cj.jdbc.Driver
				username: root
				password: 123456

四、创建用户service

public interface UserService extends IService<User> 

@DS("master") //指定所操作的数据源
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService 

五、创建商品service

public interface ProductService extends IService<Product> 

@DS("slave_1")
@Service
public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> implements ProductService 

六、测试

@Autowired
private UserService userService;
	@Autowired
	private ProductService productService;
	@Test
	public void testDynamicDataSource()
		System.out.println(userService.getById(1L));
		System.out.println(productService.getById(1L));

以上是关于MybatisPlus 学习配置多数据源的主要内容,如果未能解决你的问题,请参考以下文章

springboot+mybatisplus 配置多数据源

springboot+mybatisplus 配置多数据源

springboot+mybatisplus 配置多数据源

MybatisPlus 学习乐观锁

SpringBoot2 配置多数据源,整合MybatisPlus增强插件

MyBatisPlus 日志的两个坑:生产环境不打日志多数据源日志配置等