当前位置: 首页 > news >正文

技术应用:使用Spring Boot、MyBatis Plus和Dynamic DataSource实现多数据源

引言

在现代的软件开发中,许多应用程序需要同时访问多个数据库。例如,一个电子商务平台可能需要访问多个数据库来存储用户信息、产品信息和订单信息等。在这种情况下,使用多数据源是一种常见的解决方案,它允许我们在一个应用程序中管理多个数据库连接。

本文将介绍如何使用Spring Boot、MyBatis Plus和Dynamic DataSource实现多数据源。我们将学习如何配置和管理多个数据源,并在应用程序中使用它们执行数据库操作。(注:本文使用的Dynamic DataSource版本为4.2.0,参考文档:MyBatis Plus参考文档)

步骤

1. 添加依赖

首先,在您的Spring Boot项目中,您需要添加以下依赖:

		<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.3</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot-starter</artifactId><version>4.2.0</version></dependency>

2. 配置数据源

application.properties文件中配置您的数据源信息,例如:

spring:application:name: testdatasource:dynamic:primary: master #设置默认的数据源或者数据源组,默认值即为masterstrict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源datasource:master:url: jdbc:mysql://xxxx:3306/test?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useAffectedRows=true&serverTimezone=GMT%2B8username: rootpassword: 12345678driver-class-name: com.mysql.jdbc.Driver # 3.2.0开始支持SPI可省略此配置sqlserver:url: jdbc:sqlserver://xxxxxx:1433;DatabaseName=testusername: testpassword: 12345678driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver

3. 创建Mapper接口和实体类

创建Mapper接口和对应的实体类,并使用@Mapper注解标记Mapper接口。

@DS("sqlserver")
@Mapper
public interface UserMapper {List<User> findAll();
}
@DS("sqlserver")
@Mapper
public interface ProductMapper {List<User> findAll();
}
@Data
public class User {private Long id;private String name;private Integer age;
}
@Data
public class Product{private Long id;private String name;
}

4. 编写业务逻辑

在您的Service层中编写业务逻辑,注入Mapper接口,直接使用即可。

@Service
public class TestService {@Autowiredprivate UserMapper userMapper;@Autowiredprivate ProductMapper productMapper;public void getAll() {userMapper.findAll();productMapper.findAll();}
}

5. 测试多数据源

编写单元测试来测试多数据源的功能,确保应用程序可以正确地访问主数据库和从数据库。

@SpringBootTest
public class TestServiceTest {@Autowiredprivate TestService testService;@Testpublic void testGetAll() {testService.getAll();}
}

总结

通过本文的学习,我们了解了如何使用Spring Boot、MyBatis Plus和Dynamic DataSource实现多数据源。我们学习了如何配置和管理多个数据源,并在应用程序中使用它们执行数据库操作。多数据源可以帮助我们更灵活地处理不同的数据库连接需求,使我们的应用程序更具可扩展性和可靠性。

http://www.lryc.cn/news/306649.html

相关文章:

  • C# Onnx 使用onnxruntime部署实时视频帧插值
  • 编程笔记 Golang基础 016 数据类型:数字类型
  • 一周学会Django5 Python Web开发-会话管理(CookiesSession)
  • QT之QString.arg输出固定位数
  • Linux下各种压缩包的压缩与解压
  • 【ctfshow—web】——信息搜集篇1(web1~20详解)
  • GEE入门篇|遥感专业术语(实践操作4):光谱分辨率(Spectral Resolution)
  • c++中模板的注意事项
  • 【代码随想录python笔记整理】第十三课 · 链表的基础操作 1
  • JAVA工程师面试专题-《Mysql》篇
  • @ 代码随想录算法训练营第4周(C语言)|Day22(二叉树)
  • 福特锐界2021plus 汽车保养手册
  • c++进阶路线
  • python中的类与对象(2)
  • Android横竖屏切换configChanges=“screenSize|orientation“避免activity销毁重建,Kotlin
  • 【C语言基础】:操作符详解(二)
  • 模型训练基本结构
  • Redis 数据结构详解:底层实现与高效使用场景
  • Vue2:router-link的replace属性
  • 普中51单片机(DS18B20温度传感器)
  • 2.23C语言学习
  • origin/master master
  • 【数据结构】时间复杂度与空间复杂度
  • 分别使用js与jquery写 单击按钮时出现内容 点击删除按钮不会再向下出现
  • 【Git】Git命令的学习与总结
  • 前端工程化面试题 | 18.精选前端工程化高频面试题
  • 大公司的工程师是怎么废掉的...
  • 将yolov8权重文件转为onnx格式并在c#中使用
  • 在Spring Boot启动时禁止自动配置数据源相关的组件、@SpringBootApplication
  • 程序人生:不积跬步无以致千里