前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mybatis-plus学习(三)

mybatis-plus学习(三)

作者头像
java后端指南
发布2021-05-13 16:49:23
4310
发布2021-05-13 16:49:23
举报
文章被收录于专栏:java后端java后端

今日主题:mybatis-plus学习(三)

简介

今天来看看mybatis-plus的条件构造器,这个东西是非常好用啊,不用写sql语句就完成了sql查询等其他操作,nb-plus

环境

  • springboot
  • mybatis-plus 3.x

实现过程

1、它可以实现很多复杂的查询

根据条件查询

代码语言:javascript
复制
   @Autowired(required = false)
    private UserMapper userMapper;
    @Autowired
    private IUserService iUserService;
    /**
     * 以前默认是叫EntityWrapper,现在叫QueryWrapper
     */

    /**
     * 根据条件查询
     */
    @Test
    public void select(){
        QueryWrapper<User> wrapper=new QueryWrapper<>();
        wrapper.isNotNull("name") //name不为空的用户
        .isNotNull("email") //邮箱不为空
        .ge("age",12); //年龄大于等于12

        List<User> list=userMapper.selectList(wrapper);
        System.out.println(list);
    }

    /**
     * 根据名字查询
     */
    @Test
    public void selectName(){
        QueryWrapper<User> wrapper=new QueryWrapper<>();
        wrapper.eq("name","ting");
        List<User> list=userMapper.selectList(wrapper);
        System.out.println(list);
    }
    /**
     *  查询 10 到 20 岁的用户数
     */
    @Test
    public void selectByAge(){
        QueryWrapper<User> wrapper=new QueryWrapper<>();
        wrapper.between("age",10,21);

        List<User> list=userMapper.selectList(wrapper);
        System.out.println(list);


    }
    

2、模糊查询

代码语言:javascript
复制
 /**
     * 模糊查询
     */
    @Test
    public void selectLike(){
        QueryWrapper<User> wrapper=new QueryWrapper<>();
        wrapper
                .notLike("name","2")
                .like("name","t")
                //右查询
                .likeRight("email","234");
        List<Map<String,Object>> users=userMapper.selectMaps(wrapper);
        System.out.println(users);

    }

3、子查询

代码语言:javascript
复制
 /**
     * 子查询
     */
    @Test
    public void selectLike2(){
        QueryWrapper<User> wrapper=new QueryWrapper<>();
        wrapper.inSql("id","select id from user where age<21");
        List<Object> users=userMapper.selectObjs(wrapper);
        System.out.println(users);
    }

4、排序

代码语言:javascript
复制
 /**
     * 排序
     */
    @Test
    public void selectByOrder(){
        QueryWrapper<User> wrapper=new QueryWrapper<>();
        //降序排序
        wrapper.orderByDesc("id");

        List<User> users=userMapper.selectList(wrapper);
        System.out.println(users);
    }

5、部分字段更新

代码语言:javascript
复制
  /**
     * 部分字段更新
     */
    @Test
    public void update(){
        UpdateWrapper<User> wrapper=new UpdateWrapper<>();
        User user=new User();
        //更新字段
        wrapper.set("name","xyz");
        wrapper.eq("id",1321972874844389378L);
        System.out.println("更新结果:"+iUserService.update(user,wrapper));
    }

5、分页,需要新建一个配置类

代码语言:javascript
复制
@Configuration
@MapperScan("com.king.mapper")
public class MybatisPlusConfig {
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
        // 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求  默认false
        // paginationInterceptor.setOverflow(false);
        // 设置最大单页限制数量,默认 500 条,-1 不受限制
        // paginationInterceptor.setLimit(500);
        // 开启 count 的 join 优化,只针对部分 left join
        //paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
        return paginationInterceptor;
    }
}

分页测试方法:

代码语言:javascript
复制
    /**
     * 分页
     */
    @Test
    public void page(){
        //当前页1,每页大小2
        IPage<User> userIPage=new Page<>(1,1);
        userIPage=userMapper.selectPage(userIPage,null);
        List<User> list=userIPage.getRecords();
        System.out.println(list);
    }

OK简单的条件构造器使用就是这样了,更多的内容请深入学习咯


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-11-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java后端指南 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 今日主题:mybatis-plus学习(三)
    • 简介
      • 环境
        • 实现过程
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档