文章目录:
前言:
在开发过程中,会遇到一些慢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