mybatis插件原理 web前端三大主流框架

一、导言在我们的日常开发工作中,不可避免的要检查当前程序执行的SQL语句,方便程序员解决问题。MP提供了两种方式来输出每个SQL语句及其执行时间。对于执行时间较长的SQL,可以停止运行,有助于发现问题。这两种方法只适用于开发环境,不推荐用于生产环境。二。性能分析插件...

一、导言

在我们的日常开发工作中,不可避免的要检查当前程序执行的SQL语句,方便程序员解决问题。

MP提供了两种方式来输出每个SQL语句及其执行时间。对于执行时间较长的SQL,可以停止运行,有助于发现问题。

这两种方法只适用于开发环境,不推荐用于生产环境。

二。性能分析插件

插件版本3.2.0或以上被删除,所以推荐第二种方法(执行SQL分析和打印)。

第一步:在MP配置类中配置插件,只适用于DEV环境。

/** * @Description: MybatisPlus配置类 */@Configurationpublic class MyBatisPlusConfig { /** * SQL执行效率插件 * * @return */ @Bean @Profile({"dev"}) // 指定环境为dev生效 public Perfor***nceInterceptor perfor***nceInterceptor() { Perfor***nceInterceptor interceptor = new Perfor***nceInterceptor(); // sql美化打印 interceptor.setFor***t(true); // 设置SQL超时时间 interceptor.setMaxTime(5000L); return interceptor; }}

第二步:将环境设置为dev,可以在yml中配置如下,也可以在直接测试类中设置,如图。

spring: profiles: active: dev

步骤3:测试,在控制台中打印选择列表。这个方法已经执行了32 ms,最后执行的sql语句也被打印出来。

@Test public void select(){ List<User> users = userMapper.selectList(Wrappers.<User>lambdaQuery().eq(User::getAge, 18)); users.forEach(System.out::println); }DEBUG==> Preparing: SELECT id,login_name,name,password,e***il,salt,***,age,phone,user_type,status,organization_id,create_time,update_time,version FROM sys_user WHERE is_delete='0' AND age = ? DEBUG==> Parameters: 18(Integer)DEBUG<== Total: 0 Time:35 ms - ID:com.example.demo.***pper.UserMapper.selectListExecute SQL: SELECT id, login_name, name, password, e***il, salt, ***, age, phone, user_type, status, organization_id, create_time, update_time, version FROM sys_user WHERE is_delete='0' AND age = 18

三。执行SQL分析和打印

该功能依赖于p6spy组件,完美的输出和打印SQL和执行时间,支持MP3.1.0以上版本。

步骤1:介绍p6spy的***ven依赖

<!--sql 分析打印--><dependency> <groupId>p6spy</groupId> <artifactId>p6spy</artifactId> <version>3.8.2</version></dependency>

第二步:更改yml连接数据库的配置,主要修改url中的driver-class-name和jdbc,添加p6spy。

spring: datasource: driver-class-name: com.p6spy.engine.spy.P6SpyDriver url: jdbc:p6spy:mysql://127.0.0.1:3360/test?userSSL=false username: root password: 123456 profiles: active: dev

第3步:添加spy.properties文件,内容如下。你可以根据需要修改文件。

module.log=com.p6spy.engine.logging.P6LogFactory,com.p6spy.engine.outage.P6OutageFactory# 自定义日志打印logMessageFor***t=com.baomidou.mybatisplus.extension.p6spy.P6SpyLogger #日志输出到控制台,解开注释就行了# appender=com.baomidou.mybatisplus.extension.p6spy.StdoutLogger # 指定输出文件位置logfile=sql.log # 使用日志系统记录 sql#appender=com.p6spy.engine.spy.appender.Slf4JLogger# 设置 p6spy driver 代理deregisterdrivers=true# 取消JDBC URL前缀useprefix=true# 配置记录 Log 例外,可去掉的结果集有error,info,batch,debug,statement,commit,rollback,result,resultset.excludecategories=info,debug,result,batch,resultset# 日期格式datefor***t=yyyy-MM-dd HH:mm:ss# 实际驱动可多个#driverlist=org.h2.Driver# 是否开启慢SQL记录outagedetection=true# 慢SQL记录标准 2 秒outagedetectioninterval=2

步骤4:输出文件格式如下

Consume Time:15 ms 2019-09-20 11:50:31 Execute SQL:SELECT id,login_name,name,password,e***il,salt,***,age,phone,user_type,status,organization_id,create_time,update_time,version FROM sys_user WHERE is_delete='0' AND age = 18

作者:IT***

本文来自暗夜殘星投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/646072.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 07-23
下一篇 07-23

相关推荐

  • java单元测试框架都有哪些 单元测试框架的作用

    文章是通过学习阿里巴巴Java开发手册整理的1。好的单元测试必须遵循AIR原则从宏观上来说,一个好的单元测试的特点是自动化、独立和可重复执行。答:自动(Auto***tic)I:独立(independence)r:可重复(repeatable)2。单元测试应该是全自动和非交互式的在测试单元中不允许使用Syste

    2023-07-24 08:41:01
    1062 0
  • mybatis插件原理 web前端三大主流框架

    一、导言在我们的日常开发工作中,不可避免的要检查当前程序执行的SQL语句,方便程序员解决问题。MP提供了两种方式来输出每个SQL语句及其执行时间。对于执行时间较长的SQL,可以停止运行,有助于发现问题。这两种方法只适用于开发环境,不推荐用于生产环境。二。性能分析插件

    2023-07-23 05:31:01
    164 0
  • ssh框架是什么

    品牌型号:联想 YOGA 14c/系统版本:windows7 SSH是指一个集成框架,包含struts、spring、hibernate,是目前流行的前端开源框架之一。Struts是一个基于MVC设计模式的Web应用框架,Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架,Hibernate是一个开放源代码的对象

    2023-07-15 04:46:01
    863 0
  • 企业运营框架的两大作用 2020最全运营知识及运营框架

    创造价值是真实的,利润只是结果。人生的一切都可以成功,都可以快乐,过程都可以轻松满足。——《心灵智能》而运营是企业管理中经常提到的,那么到底什么是运营,什么是运营呢?相信这个问题会让很多人停下来思考一会儿,甚至有人会疑惑。两者有区别吗?当然是有区别的。否则

    2023-07-14 07:47:01
    385 0

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信