做推广哪个食品网站好seo交互论坛
,建设网站的css文件📝个人主页:五敷有你 🔥系列专栏:SpringBoot
⛺️稳重求进,晒太阳 mybatisPlus的多数据源配置
适用于多种场景:纯粹多库、 读写分离、 一主多从、 混合模式等
目前我们就来模拟一个纯粹多…
📝个人主页:五敷有你
🔥系列专栏:SpringBoot
⛺️稳重求进,晒太阳

mybatisPlus的多数据源配置
适用于多种场景:纯粹多库、 读写分离、 一主多从、 混合模式等
目前我们就来模拟一个纯粹多库的一个场景,其他场景类似
场景说明:
我们创建两个库,分别为: mybatis_plus(以前的库不动)与mybatis_plus_1 (新建),将
mybatis_plus库的product表移动到mybatis_plus_1库,这样每个库一张表,通过一个测试用例 分别获取用户数据与商品数据,如果获取到说明多库模拟成功
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;
2、引入依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.5.0</version>
</dependency>
3、配置多数据源
说明:注释掉之前的数据库连接,添加新配置
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
4、创建用户service
@DS("master") //指定所操作的数据源
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}
5、创建商品service
@DS("slave_1")
@Service
public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> implements ProductService {
}
6、测试
@Autowired
private UserService userService;
@Autowired
private ProductService productService;@Test
public void testDynamicDataSource(){
System.out.println(userService.getById(1L));
System.out.println(productService.getById(1L));
}
结果:
1、都能顺利获取对象,则测试成功
2、如果我们实现读写分离,将写操作方法加上主库数据源,读操作方法加上从库数据源,自动切换,是不是就能实现读写分离?
注意事项
可以设置默认的数据源或者数据源组 ,默认值即为master
# strict:严格匹配数据源 ,默认false。true未匹配到指定数据源时抛异常 ,false使用默认数据源
如下,
二者都没有使用@DS("数据源名称"),就是没有数据源,当为false时,就是会默认使用master,所以报错是mybatis_plus.t_product不存在,而不是数据源错误。
当为true时,就严格@DS中的数据源,没有就报错
相关文章:
武汉礼品定制公司星巴克seo网络推广
玉溪人民政府网站建设现状万网域名查询官网
销售网站建设实验报告外贸网站免费推广b2b
如何用源码做网站搜索引擎大全网站
沈阳网页设计课学seo需要多久
零售户电商网站订货网址山东最新消息今天
公司网站备案有什么用企业营销策划书
网站建设分为几个时期站长之家域名
app和微网站的区别是什么求职seo
做微商那个网站好贴吧友情链接在哪
小程序网站开发seo免费工具
python 做网站开发吗新塘网站seo优化
网站做研究生毕业论文知识营销
wordpress 網址隠藏seo排名优化是什么
如何 做镜像网站镇江seo公司
百度联盟网站有哪些产品推广文章
万网 网站建设深圳网站建设微信开发
自己建个购物网站友谊平台
国内优秀网站设计师今日资讯最新消息
做电影网站都需要什么手续sem竞价代运营公司
设计方案构思和设计过程咸阳seo公司
java做网站seo企业营销网站
网站开发项目具体的流程友情链接的方式如何选择
vb net 做网站英文谷歌优化
商务网站建设定义百度风云榜小说榜排名
电商网站话费充值怎么做seo排名教程
swing做网站网站换友链平台
舟山网站设计企业推广网站
网站加速代码移动端关键词优化
常州集团网站建设企业推广的网站