MybatisPlus性能分析插件
2021/10/23 23:41:13
本文主要是介绍MybatisPlus性能分析插件,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
MybatisPlus性能分析插件
作用
用于输出每条sql语句执行的时间,便于优化sql语句
基于这几篇博客修改
[整合MybatisPlus测试]
[MybatisPlus自动填充时间]
[MybatisPlus乐观锁]
[MybatisPlus物理删除、逻辑删除]
MybatisPlusConfig 类配置sql分析插件
package com.xiang.config; import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor; import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor; import org.mybatis.spring.annotation.MapperScan; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; /** * Created by IntelliJ IDEA. * User: xiang * Date: 2021/10/23 0:07 */ @Configuration @MapperScan("com.xiang.mapper") //添加扫描注解,写入mapper的路径,否则会找不到接口并报错 public class MybatisPlusConfig { //乐观锁插件 @Bean public OptimisticLockerInterceptor OptimisticLockerInterceptor() { return new OptimisticLockerInterceptor(); } //分页插件 @Bean public PaginationInterceptor paginationInterceptor() { return new PaginationInterceptor(); } //逻辑删除插件 // @Bean // public ISqlInjector sqlInjector(){ // return new LogicSqlInjector(); // } /** * Sql性能分析插件 * 开发环境使用,上线项目不推荐使用 * * @return */ @Bean @Profile({"dev", "test"})//设置使用环境 public PerformanceInterceptor performanceInterceptor() { PerformanceInterceptor performanceInterceptor = new PerformanceInterceptor(); performanceInterceptor.setMaxTime(100);//ms值,超过此处的毫秒值则不执行 performanceInterceptor.setFormat(true); return performanceInterceptor; } }
开发环境介绍:
- dev:开发环境
- test:测试环境
- prod:生产环境(真正上线交给用户使用的环境)
application.yml 设置环境
spring: datasource: url: jdbc:mysql://localhost:3307/webapp1 username: webapp1 password: webapp1 driver-class-name: com.mysql.cj.jdbc.Driver #设置当前环境:dev;test;prod profiles: active: dev #mybatis日志:添加后可以查看执行的sql语句 mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #设置逻辑删除的值:1-已删除;0-没有删除 #可自行设置值,但是一般不设置,1和0为默认值 # global-config: # db-config: # logic-delete-value: 1 # logic-not-delete-value: 0
测试类
package com.xiang; import com.xiang.mapper.UserMapper; import com.xiang.pojo.User; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import java.util.List; /** * Created by IntelliJ IDEA. * User: xiang * Date: 2021/10/23 21:28 */ @SpringBootTest public class PerformanceAnalysis { @Autowired UserMapper userMapper; /** * MybatisPlus性能分析 */ @Test /** * 查所有 */ void findAll() { List<User> list = userMapper.selectList(null); for (User user : list) { System.out.println(user); } } }
运行结果
JDBC Connection [HikariProxyConnection@2016442966 wrapping com.mysql.cj.jdbc.ConnectionImpl@40d52be7] will not be managed by Spring ==> Preparing: SELECT id,username,sex,age,birthday,create_time,update_time,version,deleted FROM user WHERE deleted=0 ==> Parameters: <== Columns: id, username, sex, age, birthday, create_time, update_time, version, deleted <== Row: 1, xiang, 男, 18, 2021-10-03, null, null, null, 0 <== Row: 559, 小向, 男, 18, 2021-10-04, null, null, null, 0 <== Row: 602, admin, 女, 18, 2021-10-20, null, null, null, 0 <== Row: 605, 小二, 女, 18, null, null, null, null, 0 <== Row: 607, 小四, 女, 21, null, null, null, null, 0 <== Row: 609, 小五, 女, 0, null, null, null, null, 0 <== Row: 1451097869404868609, 向某, 男, 0, null, null, null, null, 0 <== Row: 1451098975287668738, 周某, 男, 0, null, null, null, null, 0 <== Total: 8 Time:53 ms - ID:com.xiang.mapper.UserMapper.selectList Execute SQL: SELECT id, username, sex, age, birthday, create_time, update_time, version, deleted FROM user WHERE deleted=0 Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@2c748a15] User(id=1, username=xiang, sex=男, age=18, birthday=Sun Oct 03 00:00:00 CST 2021, createTime=null, updateTime=null, version=0, deleted=0) User(id=559, username=小向, sex=男, age=18, birthday=Mon Oct 04 00:00:00 CST 2021, createTime=null, updateTime=null, version=0, deleted=0) User(id=602, username=admin, sex=女, age=18, birthday=Wed Oct 20 00:00:00 CST 2021, createTime=null, updateTime=null, version=0, deleted=0) User(id=605, username=小二, sex=女, age=18, birthday=null, createTime=null, updateTime=null, version=0, deleted=0) User(id=607, username=小四, sex=女, age=21, birthday=null, createTime=null, updateTime=null, version=0, deleted=0) User(id=609, username=小五, sex=女, age=0, birthday=null, createTime=null, updateTime=null, version=0, deleted=0) User(id=1451097869404868609, username=向某, sex=男, age=0, birthday=null, createTime=null, updateTime=null, version=0, deleted=0) User(id=1451098975287668738, username=周某, sex=男, age=0, birthday=null, createTime=null, updateTime=null, version=0, deleted=0)
这篇关于MybatisPlus性能分析插件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-28知识管理革命:文档软件的新玩法了解一下!
- 2024-11-28低代码应用课程:新手入门全攻略
- 2024-11-28哪些办公软件适合团队协作,且能够清晰记录每个阶段的工作进展?
- 2024-11-28全栈低代码开发课程:零基础入门到初级实战
- 2024-11-28拖动排序课程:轻松掌握课程拖动排序功能
- 2024-11-28如何高效管理数字化转型项目
- 2024-11-28SMART法则好用吗?有哪些项目管理工具辅助实现?
- 2024-11-28深度剖析:6 款办公软件如何构建设计团队项目可视化管理新生态?
- 2024-11-28HTTP缓存课程:新手入门指南
- 2024-11-28实战丨证券 HTAP 混合业务场景的难点问题应对