文章目录
- 集成 MyBatisPlus
- 集成 p6spy
- 相关文章
🗯? 上节回顾:上一节中,我们集成了数据库连接池。
👉 本节目标:实现第三方技术框架的集成,比如 MyBatisPlus、p6syp。
🚀 本节内容:
- 集成 MyBatisPlus,并介绍注意事项。
- 集成 p6spy,实现打印预编译 SQL 为实际 SQL。
🔊 版本
- JDK 17
- Spring Boot 3.2.1
- dynamic-datasource 4.3.0
- MyBatisPlus 3.5.5
- p6spy 3.9.1
集成 MyBatisPlus
使用方式:直接添加 @DS 注解即可。
@Service
@DS("mysql")
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
@DS("oracle")
publid void addUser(User user){
//do something
baseMapper.insert(user);
}
}
注意事项:MyBatisPlus 内置的 ServiceImpl 类在增删改等方法上添加了 @Transactional 注解,导致无法切换数据源。解决办法:把 ServiceImpl 复制出来,去掉事务注解。或者不使用它。
集成 p6spy
Github:https://github.com/p6spy/p6spy
文档:https://p6spy.readthedocs.io/en/latest/
p6spy 用途:将预编译 SQL 打印为实际运行的 SQL。
# before
select * from user where age>?
# after enabled p6spy
select * from user where age>6
集成 p6syp:
1、引入依赖
<!-- https://mvnrepository.com/artifact/p6spy/p6spy -->
<dependency>
<groupId>p6spy</groupId>
<artifactId>p6spy</artifactId>
<version>3.9.1</version>
</dependency>
2、dynamic-datasource 启用 p6spy【线上建议关闭,会打印连接 url 等敏感信息】
spring:
datasource:
dynamic:
p6spy: true # 默认false,建议线上关闭。
datasource:
product:
username: sa
password: ""
url: jdbc:h2:mem:test
driver-class-name: org.h2.Driver
p6spy: false # 如果这个库不需要可单独关闭。
order:
username: sa
password: ""
url: jdbc:h2:mem:test
driver-class-name: org.h2.Driver
3、添加 spy.properties 配置文件(放在 classpath 下,用于使用 SLF4J 输出日志)
# 一个最简单配置,定义slf4j日志输出。 更多参数请自行了解。
appender=com.p6spy.engine.spy.appender.Slf4JLogger
至此,集成 MyBatisPlus 及 p6spy 完成。😊
相关文章
1.SpringBoot 多数据源 - dynamic-datasource | 快速入门-CSDN博客
2.多数据源 - dynamic-datasource | 集成 HikariCP 连接池-CSDN博客
3.多数据源 - dynamic-datasource | 集成 MyBatisPlus 及 p6spy-CSDN博客
4.多数据源 - dynamic-datasource | 集成 Quartz 及 ShardingJDBC-CSDN博客
5.多数据源 - dynamic-datasource | 事务支持-CSDN博客
6.多数据源 - dynamic-datasource | 进阶 - 动态添加、移除数据源-CSDN博客
7.多数据源 - dynamic-datasource | 进阶 - 动态解析数据源
8.多数据源 - dynamic-datasource | 进阶 - 懒加载、初始化SQL、无数据源启动
9.数据源 - dynamic-datasource | 进阶 - 数据库加密
10.多数据源 - dynamic-datasource | 进阶 - 自定义注解、数据源来源、负载均衡策略
11.多数据源 - dynamic-datasource | 进阶 - 手动切换数据源、无注解切换数据源
12.多数据源 - dynamic-datasource | 常见问题汇总