码迷,mamicode.com
首页 > 其他好文 > 详细

MyBatis-Plus快速入门(四)性能分析插件、条件构造器

时间:2020-09-17 19:52:50      阅读:27      评论:0      收藏:0      [点我收藏+]

标签:alt   排序   超过   年龄   操作   html   等于   cep   效率   

性能分析插件

开发过程中我们会遇到一些运行较慢的SQL,我们需要进行测试,或者使用druid进行操作。

在mybatis-plus中也提供了这样的插件,如果超过就停止运行!

1.导入插件

/**
* SQL执行效率插件
*/
@Bean
@Profile({"dev","test"})//设置dev test环境开启,保证我们的效率
public PerformanceInterceptor performanceInterceptor(){
    PerformanceInterceptor performanceInterceptor = new PerformanceInterceptor();
    performanceInterceptor.setMaxTime(1);//ms毫秒 设置sql执行的最大时间,如果超过了则不执行
    performanceInterceptor.setFormat(true);//是否开启格式化(开启)
    return performanceInterceptor;
}

得在springboot中配置环境dev 或者 test环境。

#开发环境
spring.profiles.active=dev

2.测试使用

    //测试通过id查询用户
    @Test
    public void selectById(){
        SysUser sysUser = userMapper.selectById(1303211966619484161L);
        System.out.println(sysUser);
    }

技术图片

注意:该方法3.0x已经被移除,官方不再推荐使用!

条件构造器

Wrapper:十分重要

我们写的一些复杂的SQL我们可以使用它来代替!

条件构造器官网地址:https://baomidou.com/guide/wrapper.html#abstractwrapper

测试使用:

@SpringBootTest
public class WrapperApplication {

    @Autowired
    private UserMapper userMapper;

    //查询name不为空的用户,并且邮箱不为空且年龄大于等于12的用户
    @Test
    public void contextLoads(){
        QueryWrapper<SysUser> wrapper=new QueryWrapper<SysUser>();
        wrapper.isNotNull("username")
                .isNotNull("email")
                .ge("age", 18);
        List<SysUser> users = userMapper.selectList(wrapper);
        users.forEach(System.out::println);
    }

    //查询名字叫XXX的一个人
    @Test
    public void contextLoads2(){
        QueryWrapper<SysUser> wrapper = new QueryWrapper<>();
        wrapper.eq("username", "手残");
        SysUser sysUser = userMapper.selectOne(wrapper);
        System.out.println("username = " + sysUser);
    }

    //查询年龄在21到30之间的用户
    @Test
    public void contextLoads3_1(){
        QueryWrapper<SysUser> wrapper = new QueryWrapper<>();
        wrapper.between("age", 21, 30);
        List<SysUser> user = userMapper.selectList(wrapper);//查询一个数据有结果数据时我们可以使用List 或者 Map
        user.forEach(System.out::println);
    }

    //查询年龄在21到30之间的用户数
    @Test
    public void contextLoads3_2(){
        QueryWrapper<SysUser> wrapper = new QueryWrapper<>();
        wrapper.between("age", 21, 30);//区间
        Integer count = userMapper.selectCount(wrapper);//查询结果数
        System.out.println("count = " + count);
    }

    //查询名字不含j的而且email以t开头的
    @Test
    public void contextLoads4(){
        QueryWrapper<SysUser> wrapper = new QueryWrapper<>();
        wrapper.notLike("username", "j")
                .likeRight("email", "t");
        List<Map<String, Object>> maps = userMapper.selectMaps(wrapper);
        maps.forEach(System.out::println);
    }

    //id在子查询查出来
    @Test
    public void contextLoads5(){
        QueryWrapper<SysUser> wrapper = new QueryWrapper<>();
        wrapper.inSql("user_id", "select user_id from sys_user where user_id < 3");
        List<Object> objects = userMapper.selectObjs(wrapper);
        objects.forEach(System.out::println);
    }


    //查询name不为空的用户、并且邮箱不为空、且年龄大于等于16的用户,并按age升序排序
    @Test
    public void contextLoads6(){
        QueryWrapper<SysUser> wrapper=new QueryWrapper<SysUser>();
        wrapper.isNotNull("username")
                .isNotNull("email")
                .ge("age", 12)
                .orderByAsc("age");
        List<SysUser> users = userMapper.selectList(wrapper);
        users.forEach(System.out::println);
    }
}

  


 素材来源地址:狂神说  https://www.bilibili.com/video/BV17E411N7KN?p=2

 

MyBatis-Plus快速入门(四)性能分析插件、条件构造器

标签:alt   排序   超过   年龄   操作   html   等于   cep   效率   

原文地址:https://www.cnblogs.com/jjsir/p/13639331.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!