MP性能分析插件与条件构造器 (来自凌晨二点得学习整理笔记 :二)

前言:

在开发过程中,会遇到一些慢SQL,这是不希望出现得。
MP 也提供了性能分析插件,如果超过了这个时间就停止运行!

一、SQL语句性能分析插件:

性能分析插件作用:
性能分析拦截器,用于输出每条SQL 得执行时间!!

性能分析插件使用步骤如下:
1、导入插件

/**
* SQL 执行效率插件
*/
@Bean
@Profile({“dev”,“test”}) //设置dev 和 test环境开启,保证效率
public PerformanceInterceptor performanceInterceptor() {
PerformanceInterceptor performanceInterceptor = new PerformanceInterceptor();
performanceInterceptor.setMaxTime(100);//ms,超过此处设置的ms则sql不执行
performanceInterceptor.setFormat(true);//format: SQL是否格式化,默认false。
return performanceInterceptor;
}

2、在application.yml 中加入环境配置:
#设置开发环境
spring.profiles.active=dev
3、执行SQL 语句查询:

略。。。

小总结:

使用性能分析插件,可以帮助我们提升效率。。。

二、条件构造器测试案例:
Wrapper说明:
  • 首先来说说基本的查询吧,根据主键或者简单的查询条件进行查询。

  • 关键点就是newQueryWrapper对象。

      @Test
      void contextLoads() {
      //查询姓名年龄不为空得大于18岁得
      QueryWrapper<User> wrapper = new QueryWrapper<>();
      wrapper
              .isNotNull("name") //不为空得
              .isNotNull("email")
              .ge("age",18);
              userMapper.selectList(wrapper).forEach(System.out::println);}
    
  • 返回结果:
    在这里插入图片描述

      @Test
      void test2() {
      //查询姓名为: 志强学SpringBoot
      QueryWrapper<User> wrapper = new QueryWrapper<>();
      wrapper.eq("name","志强学SpringBoot");
      User user = userMapper.selectOne(wrapper);
      System.out.println(user);
          }
    
  • 返回结果:
    在这里插入图片描述

/**
* 查询年龄小于、等于18岁得用户
*/
@Test
void test3() {
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.le(“age”,18);
User user = userMapper.selectOne(wrapper);
System.out.println(user);
}

/**
 *  查询年龄大于、等于40岁得用户
 */
@Test
void test4() {
    QueryWrapper<User> wrapper = new QueryWrapper<>();
    wrapper.ge("age",40);
    //注意这里因为表中年龄为40 岁得用户有多条记录,所以用list
    List<User> list = userMapper.selectList(wrapper);
    System.out.println(list);
}
这里假设有一对多得记录条数:不能用selectOne,而是用list接收!

如下异常就是用selectOne接收报错得:
在这里插入图片描述

selectList接收后得效果:

在这里插入图片描述

 /**
 *  查询年龄18 -40岁之间得用户
 */
@Test
void test5() {
    QueryWrapper<User> wrapper = new QueryWrapper<>();
    wrapper.between("age",18,40);
    //注意这里因为表中年龄为40 岁得用户有多条记录,所以用list
    Integer count = userMapper.selectCount(wrapper);
    System.out.println("人数总条数为:"+count);
}

在这里插入图片描述

 /**
 *  模糊查询使用name 中为志 得用户
     */
    @Test
    void test6() {
        QueryWrapper<User> wrapper = new QueryWrapper<>();
            wrapper.like("name","志");
     //   QueryWrapper<User> userlike = wrapper.like("name", "奔驰");
        List<Map<String, Object>> maps = userMapper.selectMaps(wrapper);
        maps.forEach(System.out::println);
    }

在这里插入图片描述

	  /**
 *  通过id 排序 按降序排列出用户
 */
@Test
void test7() {
    QueryWrapper<User> wrapper = new QueryWrapper<>();
    QueryWrapper<User> userdesc = wrapper.orderByDesc("id");
    List<User> users = userMapper.selectList(wrapper);
    users.forEach(System.out::println);
}

在这里插入图片描述

三、中文链接地址:

http://www.baomidou.com/guide/wrapper.html#groupby

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值