首页 > 其他分享 >mybatisPlus-条件查询

mybatisPlus-条件查询

时间:2023-04-15 20:22:10浏览次数:30  
标签:QueryWrapper mybatisPlus list System 查询 条件 println new out

QueryWrapper

说明:
      继承自 AbstractWrapper ,自身的内部属性 entity 也用于生成 where 条件
及 LambdaQueryWrapper, 可以通过 new QueryWrapper().lambda() 方法获取.

测试用表:

在这里插入图片描述

1. eq、ne

说明:

eq:等于,ne:不等于

测试:

@Test
public void contextLoads(){
        QueryWrapper<Employee> wrapper = new QueryWrapper<>();
        //eq() 等于
        wrapper.eq("last_name", "皮皮虾");
        Employee one = employeeService.getOne(wrapper);
        System.out.println(one);
}

在这里插入图片描述

@Test
public void contextLoads(){
        QueryWrapper<Employee> wrapper = new QueryWrapper<>();
        //ne() 不等于
        wrapper.ne("gender", 0);
        List<Employee> list = employeeService.list(wrapper);
        System.out.println(list);
}

在这里插入图片描述

2. gt、ge、lt、le

说明:

gt:大于,ge:大于等于,lt:小于,le:小于等于

测试:

@Test
public void contextLoads(){
        QueryWrapper<Employee> gtWrapper = new QueryWrapper<>();
        //gt() 大于
        gtWrapper.gt("age", 27);
        List<Employee> gtList = employeeService.list(gtWrapper);
        System.out.println(gtList);

        //**********************

        QueryWrapper<Employee> geWrapper = new QueryWrapper<>();
        //ge() 大于等于
        geWrapper.ge("age", 26);
        List<Employee> geList = employeeService.list(geWrapper);
        System.out.println(geList);
}

在这里插入图片描述

@Test
public void contextLoads(){
        QueryWrapper<Employee> ltWrapper = new QueryWrapper<>();
        //lt() 小于
        ltWrapper.lt("age", 12);
        List<Employee> ltList = employeeService.list(ltWrapper);
        System.out.println(ltList);

        //**********************

        QueryWrapper<Employee> geWrapper = new QueryWrapper<>();
        //le() 小于等于
        leWrapper.le("age", 12);
        List<Employee> leList = employeeService.list(leWrapper);
        System.out.println(leList);
}

在这里插入图片描述

3. between、notBetween

说明:

between:在值1和值2之间,notBetween:不在值1和值2之间

测试:

@Test
public void contextLoads(){
        QueryWrapper<Employee> betweenWrapper = new QueryWrapper<>();
        //between() 区间的值
        betweenWrapper.between("age", 10, 20);
        List<Employee> betweenList = employeeService.list(betweenWrapper);
        System.out.println(betweenList );

        //**********************

        QueryWrapper<Employee> notBetweenWrapper = new QueryWrapper<>();
        //notBetween() 不在区间的值
        notBetweenWrapper.notBetween("age", 10, 21);
        List<Employee> notBetweenList = employeeService.list(notBetweenWrapper );
        System.out.println(notBetweenList );
}

在这里插入图片描述

4. like、notLike、likeLeft、likeRight

说明:

like:’%值%’,notLike:’%值%’,likeLeft:’%值’,likeRight:'值%'

测试:

@Test
public void contextLoads(){
        QueryWrapper<Employee> likeWrapper = new QueryWrapper<>();
        //like() 模糊查询匹配值
        likeWrapper.like("last_name", "s");
        List<Employee> likeList = employeeService.list(likeWrapper);
        System.out.println(likeList );

        //**********************

        QueryWrapper<Employee> notLikeWrapper = new QueryWrapper<>();
        //notLike() 模糊查询不匹配值
        notLikeWrapper.notLike("last_name", "s");
        List<Employee> notLikeList = employeeService.list(notLikeWrapper);
        System.out.println(notLikeList);
}

在这里插入图片描述

@Test
public void contextLoads(){
        QueryWrapper<Employee> likeLeftWrapper = new QueryWrapper<>();
        //likeLeft() 模糊查询匹配最后一位值
        likeLeftWrapper.likeLeft("last_name", "s");
        List<Employee> likeLeftList = employeeService.list(likeLeftWrapper);
        System.out.println(likeLeftList );

        //**********************

        QueryWrapper<Employee> likeRightWrapper = new QueryWrapper<>();
        //likeRight() 模糊查询匹配第一位值
        likeRightWrapper.likeRight("last_name", "s");
        List<Employee> likeRightList = employeeService.list(likeRightWrapper );
        System.out.println(likeRightList );
}

在这里插入图片描述

5. isNull、isNotNull

说明:

isNull:字段 IS NULL,isNotNull:字段 IS NOT NULL

测试:

在这里插入图片描述

@Test
public void contextLoads(){
        QueryWrapper<Employee> isNullWrapper = new QueryWrapper<>();
        //isNull() 为空
        isNullWrapper.isNull("email");
        List<Employee> isNullList = employeeService.list(isNullWrapper);
        System.out.println(isNullList );

        //**********************

        QueryWrapper<Employee> isNotNullWrapper = new QueryWrapper<>();
        //isNotNull() 不为空
        isNotNullWrapper.isNotNull("last_name", "s");
        List<Employee> isNotNullList = employeeService.list(isNotNullWrapper );
        System.out.println(isNotNullList );
}

在这里插入图片描述

6. in、notIn

说明:

in:字段 IN (v0, v1, …),notIn:字段 NOT IN (value.get(0), value.get(1), …)

测试:

@Test
public void contextLoads(){
        QueryWrapper<Employee> inWrapper = new QueryWrapper<>();
        //in() 符合多个条件的值
        inWrapper.in("age", 8, 16, 26);
        List<Employee> inList = employeeService.list(inWrapper);
        System.out.println(inList );

        //**********************

        QueryWrapper<Employee> notInWrapper= new QueryWrapper<>();
        //notIn() 不符合多个条件的值
        notInWrapper.notIn("age", 8, 16, 26);
        List<Employee> notInList = employeeService.list(notInWrapper);
        System.out.println(notInList );
}

在这里插入图片描述

7. or、and

说明:

or:或者 ,and:和

注意事项:
主动调用or表示紧接着下一个方法不是用and连接!(不调用or则默认为使用and连接)

测试:

@Test
public void contextLoads(){
        QueryWrapper<Employee> orWrapper = new QueryWrapper<>();
        //or() 查询age大于20 或者 gender等于1 的数据
        orWrapper.gt("age", 20).or().eq("gender", 1);
        List<Employee> orList = employeeService.list(orWrapper);
        System.out.println(orList );
}

在这里插入图片描述

@Test
public void contextLoads(){
        QueryWrapper<Employee> andWrapper = new QueryWrapper<>();
        //and() 查询last_name等于皮皮虾b 和 gender等于1 的数据 (不使用and() 默认就是and())
        andWrapper.eq("last_name", "皮皮虾b").eq("gender", 1);
        List<Employee> andList = employeeService.list(andWrapper );
        System.out.println(andList);
}

在这里插入图片描述

8. orderByAsc、orderByDesc

说明:

orderByAsc:升序:ORDER BY 字段, … ASC,orderByDesc:降序:ORDER BY 字段, … DESC

测试:

@Test
public void contextLoads(){
        QueryWrapper<Employee> Wrapper = new QueryWrapper<>();
        //orderByAsc() 升序排序
        Wrapper.orderByAsc("id");
        List<Employee> list = employeeService.list(Wrapper);
        for(Employee e : list) {
            System.out.println(e);
        }
}

在这里插入图片描述

@Test
public void contextLoads(){
        QueryWrapper<Employee> Wrapper = new QueryWrapper<>();
        //orderByDesc() 降序排序
        Wrapper.orderByDesc("id");
        List<Employee> list = employeeService.list(Wrapper);
        for(Employee e : list) {
            System.out.println(e);
        }
}

在这里插入图片描述

9. inSql、notInSql (不常用)

说明:

inSql:字段 IN ( sql语句 ),notInSql:字段 NOT IN ( sql语句 )

测试:

@Test
public void contextLoads(){
        QueryWrapper<Employee> inSqlWrapper = new QueryWrapper<>();
        //inSql() 符合sql语句的值
        inSqlWrapper .inSql("select id from employee where id < 10");
        List<Employee> inSqlList = employeeService.list(inSqlWrapper );
        System.out.println(inSqlList );

        //**********************

        QueryWrapper<Employee> notInSqlWrapper= new QueryWrapper<>();
        //notInSql() 不符合sql语句的值
        notInSqlWrapper.notInSql("select id from employee where id < 10");
        List<Employee> notInSqlList = employeeService.list(notInSqlWrapper);
        System.out.println(notInSqlList );
}

在这里插入图片描述

10. exists、notExists (不常用)

说明:

exists:拼接 EXISTS ( sql语句 ),notExists:拼接 NOT EXISTS ( sql语句 )

测试:

@Test
public void contextLoads(){
        QueryWrapper<Employee> existsWrapper = new QueryWrapper<>();
        //exists() 查询符合sql语句的值
        existsWrapper.exists("select last_name,gender from employee where id = 1");
        List<Employee> existsList = employeeService.list(existsWrapper);
        System.out.println(existsList );

        //**********************

        QueryWrapper<Employee> notExistsWrapper = new QueryWrapper<>();
        //notExists() 查询不符合sql语句的值
        notExistsWrapper.notExists("select last_name,gender from employee where id = 1");
        List<Employee> notExistsList = employeeService.list(notExistsWrapper);
        System.out.println(notExistsList );

}

在这里插入图片描述

 

标签:QueryWrapper,mybatisPlus,list,System,查询,条件,println,new,out
From: https://www.cnblogs.com/ixtao/p/17321778.html

相关文章

  • mybatisPlus-分页查询
    添加分页插件importcom.baomidou.mybatisplus.annotation.DbType;importcom.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;importcom.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;importcom.baomidou.mybatisplu......
  • SpringBoot 集成 MybatisPlus 十——数据自动填充
    1自动填充功能介绍自动填充功能可以在插入或修改时为对象属性自动赋值。之前学习了逻辑删除字段,在向数据库插入数据时,都需要设置isDeleted=0,这在进行频繁地数据插入时就显得有些繁琐,于是MybatisPlus就为我们提供了自动填充的功能。修改实体类,为需要自动填充的字段在注解@Table......
  • mysql left join 查询时主表为null统计count为0的解决方法(join后面加group by)
     如果没有加groupby则会出UserCount为0外其它都是nullselecta.*,count(b.ID)asUserCountfromerp_roleasaleftjoinerp_userasbona.ID=b.RoleIdwhere1=1anda.TenantID=2anda.RoleName='string' 加上groupby一切正常selecta.*,count(b.ID)as......
  • mysql如何查询所有表和字段信息
    1MySQL中information_schema是什么information_schema数据库是MySQL自带的,它提供了访问数据库元数据的方式。元数据:元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。有些时候用于表述该信息的其他术语包括“数据字典”和“系统目录”。在MySQL中,把informat......
  • Java MyBatis-Plus(4)MybatisPlus整合Pagehelper实现分页
    序言 /***pageInfo对象中属性含义*privateintpageNum;//当前页码*privateintpageSize;//设置每页多少条数据*privateintsize;//当前页有多少条数据*privateintstartRow;//当前页码第一条数据的*privateintendRow;//......
  • mybatisPlus-乐观锁
    数据库中添加version字段  自定义配置类中,添加乐观锁的拦截器packagecom.atguigu.config;importcom.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;importcom.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;im......
  • 快递单号查询自动查询,批量查快递,管理物流信息
    如何在电脑上快速查询多家快递单号的物流,并在查询快递一段时间后,删除不需要的单号呢?不知道如何操作的宝贝们,下面请随小编一起来试试吧。材料准备:一台Win系统的电脑安装一个快递批量查询高手快递单号若干步骤演示:步骤1:打开【快递批量查询高手】,主界面的上方是工具栏,下方是状态栏,整体......
  • Android中GC—初探-1—触发时机和条件
    一、GC简介Java对象的创建由Allocator负责,回收由Collector负责。从AndroidO开始,对于前台应用默认的GCCollector是CC(ConcurrentCopying)Collector,与之相匹配的Allocator则是Region-basedBumpPointerAllocator(withTLAB)。二、前台应用GC何时触发1.GC触......
  • mybatisPlus-自动填充
      实体类importcom.baomidou.mybatisplus.annotation.IdType;importcom.baomidou.mybatisplus.annotation.TableField;importcom.baomidou.mybatisplus.annotation.TableId;importlombok.Data;importjava.util.Date;importstaticcom.baomidou.mybatisplus.ann......
  • 放弃where 1 = 1,使用更优雅的SQL条件拼接
    列表接口,通常会有多个条件组合查询的业务场景。映射至mapper.xml中就需要写where1=1来拼接否则就会发生select*fromtablewhereandcolumn='value'的语法错误如今的IDEA中,如果你设置了SQL方言,就会警告你where1=1始终为true建议使用<where></where>标签来处理这......