mybatis插件原理(web前端三大主流框架)
多条告白如次剧本只需引入一次
一、弁言
在咱们凡是开拓处事傍边,制止不了察看当出息序所实行的SQL语句,便于步调员排忧解围呐。
MP供给了两种办法,用来输入每条SQL语句及其实行功夫,对准实行较长功夫的SQL不妨遏止运转,无助于于创造题目。
这两种办法只实用于开拓情况,不倡导消费情况运用。
二、本能领会插件
该插件 3.2.0 之上本子移除,引荐运用第二种办法(实行SQL领会打字与印刷)办法。
办法一:在MP摆设类中摆设该插件,而且只实用于DEV情况
/** * @Description: MybatisPlus摆设类 */@Configurationpublic class MyBatisPlusConfig { /** * SQL实行功效插件 * * @return */ @Bean @Profile({"dev"}) // 指定情况为dev奏效 public PerformanceInterceptor performanceInterceptor() { PerformanceInterceptor interceptor = new PerformanceInterceptor(); // sql粉饰打字与印刷 interceptor.setFormat(true); // 树立SQL超时功夫 interceptor.setMaxTime(5000L); return interceptor; }}办法二:树立情况为dev,不妨在yml如次摆设,大概径直尝试类中也是不妨树立的,如图。
spring: profiles: active: dev办法三:尝试尝试,在遏制台中打字与印刷selectList这个本领实行了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,email,salt,sex,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.mapper.UserMapper.selectListExecute SQL: SELECT id, login_name, name, password, email, salt, sex, 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之上本子。
办法一:引入p6spy的maven依附
<!--sql 领会打字与印刷--><dependency> <groupId>p6spy</groupId> <artifactId>p6spy</artifactId> <version>3.8.2</version></dependency>办法二:变动yml贯穿数据库摆设,重要窜改driver-class-name、url中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办法三:新增spy.properties文献,实质如次,不妨按照需要对立应的窜改文献。
module.log=com.p6spy.engine.logging.P6LogFactory,com.p6spy.engine.outage.P6OutageFactory# 自设置日记打字与印刷logMessageFormat=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# 日子方法dateformat=yyyy-MM-dd HH:mm:ss# 本质启动可多个#driverlist=org.h2.Driver# 能否打开慢SQL记载outagedetection=true# 慢SQL记载规范 2 秒outagedetectioninterval=2办法四:输入文献方法实质如次
Consume Time:15 ms 2019-09-20 11:50:31 Execute SQL:SELECT id,login_name,name,password,email,salt,sex,age,phone,user_type,status,organization_id,create_time,update_time,version FROM sys_user WHERE is_delete='0' AND age =