当前位置: 首页>编程语言>正文

多数据源 - dynamic-datasource - 集成 MyBatisPlus 及 p6spy

文章目录

  • 集成 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 | 常见问题汇总


https://www.xamrdz.com/lan/5xk1997309.html

相关文章: