我是靠谱客的博主 香蕉朋友,最近开发中收集的这篇文章主要介绍五.MyBatis -plus 的性能分析插件,(慢查询),条件构造器,代码自动生成器,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 

目录

 1.性能分析插件 (慢查询)

     1.1、导入插件

     1.2、测试使用

  2.条件构造器

  3.代码自动生成器


1.性能分析插件 (慢查询)

我们在平时的开发中,会遇到一些满Sql。测试、druid···

MybatisPlus也提供了性能分析插件,如果超过这个时间就停止运行!

性能分析拦截器作用:用于输出每条sql语句及其执行时间

    1.1、导入插件

  1. //性能分析插件
    @Bean
    @Profile({"dev","test"})//设置dev开发、test测试 环境开启 保证我们的效率
    public PerformanceInterceptor performanceInterceptor(){
    PerformanceInterceptor performanceInterceptor = new PerformanceInterceptor();
    performanceInterceptor.setMaxTime(100);//设置sql最大执行时间*ms,如果超过了则不执行
    performanceInterceptor.setFormat(true);//开启sql格式化
    
    return performanceInterceptor;
    }
    注意: 要在SpringBoot中配置环境为dev或test环境!

      1.2、测试使用

@Test
void contextLoads() {
//参数是一个wrapper ,条件构造器,这里我们先不用 null
//查询全部的用户
List<User> userList = userMapper.selectList(null);
userList.forEach(System.out::println);

}

   使用性能分析插件,可以帮助我们提高效率!、

  2.条件构造器

十分重要:Wrapper 记住查看输出的SQL进行分析 ,执行复杂的sql 语句的功能

1、测试一

@Test
public void testWrapper1() {

//参数是一个wrapper ,条件构造器,和刚才的map对比学习!
//查询name不为空,email不为空,age大于18的用户
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper
.isNotNull("name")
.isNotNull("email")
.ge("age",18);

List<User> userList = userMapper.selectList(wrapper);
userList.forEach(System.out::println);

}

测试二

@Test
public void testWrapper2() {

//查询name=wsk的用户
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("name","wsk");
//查询一个数据selectOne,若查询出多个会报错
//Expected one result (or null) to be returned by selectOne(), but found: *
//若出现多个结果使用list或map
User user = userMapper.selectOne(wrapper);//查询一个数据,若出现多个结果使用list或map
System.out.println(user);
}

测试三

@Test
public void testWrapper3() {

//查询age在10-20之间的用户
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.between("age", 10, 20);//区间

Integer count = userMapper.selectCount(wrapper);//输出查询的数量selectCount
System.out.println(count);
}

 

测试四

@Test
public void testWrapper5() {

//模糊查询
// SELECT id,name,age,email,version,deleted,create_time,update_time
//FROM user
//WHERE deleted=0 AND id IN
//(select id from user where id<5)
QueryWrapper<User> wrapper = new QueryWrapper<>();
//id 在子查询中查出来
wrapper.inSql("id","select id from user where id<5");

List<Object> objects = userMapper.selectObjs(wrapper);
objects.forEach(System.out::println);

}

测试五

@Test
public void testWrapper6() {

QueryWrapper<User> wrapper = new QueryWrapper<>();
//通过id进行降序排序
wrapper.orderByDesc("id");

List<User> userList = userMapper.selectList(wrapper);
userList.forEach(System.out::println);

}

   3.代码自动生成器

AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。

下面提供一个模板,也可以直接去官网,
package com.wsk;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.po.TableFill;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

import java.util.ArrayList;

//代码自动生成器
public class WskCode {

public static void main(String[] args) {

//我们需要构建一个代码生成器对象
AutoGenerator mpg = new AutoGenerator();
//怎么样去执行,配置策略


//1、全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");//获取当前目录
gc.setOutputDir(projectPath+"/src/main/java");//输出到哪个目录
gc.setAuthor("wsk");
gc.setOpen(false);
gc.setFileOverride(false);//是否覆盖
gc.setServiceName("%sService");//去Service的I前缀
gc.setIdType(IdType.ID_WORKER);
gc.setDateType(DateType.ONLY_DATE);
gc.setSwagger2(true);

mpg.setGlobalConfig(gc);

//2、设置数据源
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUsername("root");
dsc.setPassword("root");
dsc.setUrl("jdbc:mysql://localhost:3306/wuye?useSSL=false&serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setDbType(DbType.MYSQL);

mpg.setDataSource(dsc);

//3、包的配置
PackageConfig pc = new PackageConfig();
pc.setModuleName("study");
pc.setParent("com.wsk");
pc.setEntity("pojo");
pc.setMapper("mapper");
pc.setService("service");
pc.setController("controller");

mpg.setPackageInfo(pc);

//4、策略配置
StrategyConfig strategy = new StrategyConfig();
strategy.setInclude("admin","danyuan","building","room");//设置要映射的表名,只需改这里即可
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
strategy.setEntityLombokModel(true);//是否使用lombok开启注解

strategy.setLogicDeleteFieldName("deleted");

//自动填充配置
TableFill gmtCreate = new TableFill("gmt_create", FieldFill.INSERT);
TableFill gmtUpdate = new TableFill("gmt_update", FieldFill.INSERT_UPDATE);
ArrayList<TableFill> tableFills = new ArrayList<>();
tableFills.add(gmtCreate);
tableFills.add(gmtUpdate);
strategy.setTableFillList(tableFills);

//乐观锁配置
strategy.setVersionFieldName("version");

strategy.setRestControllerStyle(true);//开启驼峰命名

strategy.setControllerMappingHyphenStyle(true);//localhost:8080/hello_id_2

mpg.setStrategy(strategy);

mpg.execute();//执行

}

}

最后

以上就是香蕉朋友为你收集整理的五.MyBatis -plus 的性能分析插件,(慢查询),条件构造器,代码自动生成器的全部内容,希望文章能够帮你解决五.MyBatis -plus 的性能分析插件,(慢查询),条件构造器,代码自动生成器所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(150)

评论列表共有 0 条评论

立即
投稿
返回
顶部