mybatis plus 2 (QueryWrapper)

前言 参考

一、 hutool 工具包

网站
Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。
Hutool中的工具方法来自每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;
Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。
jar包

    <!-- Hutool-->
    <dependency>
      <groupId>cn.hutool</groupId>
      <artifactId>hutool-all</artifactId>
      <version>5.7.19</version>
    </dependency>

二、QueryWrapper(条件构造器)

1.alleq

allEq(Map<R, V> params)
allEq(Map<R, V> params, boolean null2IsNull)
allEq(boolean condition, Map<R, V> params, boolean null2IsNull)

   @Override
    public List<Dept> queryList(Dept dept) {
        QueryWrapper queryWrapper = new QueryWrapper();
        Map map = new HashMap();
  /*    if (StrUtil.isNotEmpty(dept.getDeptno() )){
          map.put("deptno",dept.getDeptno()!=null);
      }*/
        //allEq的用法
        if (dept.getDeptno()!=null){
            map.put("deptno",dept.getDeptno());
        }
        if (StrUtil.isNotEmpty(dept.getDname())){
            map.put("dname",dept.getDname());
        }
        if (StrUtil.isNotEmpty(dept.getLoc())){
            map.put("loc",dept.getLoc());
        }
       /* map.put("deptno",dept.getDeptno());
        map.put("dname",dept.getDname());
        map.put("loc",dept.getLoc());*/

        queryWrapper.allEq(map,false);
        //第二个参数为false 为空的话就不拼接 默认写一个参数的话就直接拼接 不管空不空
        return deptMapper.selectList(queryWrapper);

在这里插入图片描述

2.eq

类似equals

eq(R column, Object val)
eq(boolean condition, R column, Object val)

 queryWrapper.eq("deptno",dept.getDeptno());
        queryWrapper.eq(dept.getDeptno()>0,"deptno", dept.getDeptno());

`在这里插入图片描述
在这里插入图片描述

3. ne

ne (R column, Object val)
ne (Boolean condition,R column, Object val)  第一个是条件

在这里插入图片描述
在这里插入图片描述

4.gt

大于

ge(R column, Object val)
ge(boolean condition, R column, Object val)

在这里插入图片描述

5.ge

大于等于

ge(R column, Object val)
ge(boolean condition, R column, Object val)

在这里插入图片描述

6.lt

小于

lt(R column, Object val)
lt(boolean condition, R column, Object val)

在这里插入图片描述

7.le

小于等于

le(R column, Object val)
le(boolean condition, R column, Object val)

8.between

between(R column, Object val1, Object val2)
between(boolean condition, R column, Object val1, Object val2)

类似 and
在这里插入图片描述

   queryWrapper.between("deptno",dept.getMinValue(),dept.getMaxValue());

在这里插入图片描述

 queryWrapper.between(dept.getMinValue()>0&&dept.getMaxValue()>0,"deptno",dept.getMinValue(),dept.getMaxValue());

同样可以加条件

9.notBetween

not and

notBetween(R column, Object val1, Object val2)
notBetween(boolean condition, R column, Object val1, Object val2)

在这里插入图片描述

10.like=LIKE ‘%值%’

在这里插入图片描述

11.notLike =NOT LIKE ‘%值%’

12.likeLeft = LIKE ‘%值’

13,。likeRight =LIKE ‘值%’

14.isNull = IS NULL

15.isNotNull = IS NOT NULL

16.in = IN (value.get(0), value.get(1), …)

in(“age”,{1,2,3})—>age in (1,2,3)

17.notin NOT IN (value.get(0), value.get(1), …)

notIn(“age”,{1,2,3})—>age not in (1,2,3)

18.insql IN ( sql语句 )

直接写 sql 了 可以 sql注入的

inSql(R column, String inValue)
inSql(boolean condition, R column, String inValue)

19.notinSql NOT IN ( sql语句 )

notInSql(R column, String inValue)
notInSql(boolean condition, R column, String inValue)

20.groupBy =:GROUP BY 字段, …

就是分组的 啦

groupBy(R... columns)
groupBy(boolean condition, R... columns)

21.orderByAsc ORDER BY 字段, … ASC

升序排序

orderByAsc(R... columns)
orderByAsc(boolean condition, R... columns)

22.orderByDesc ORDER BY 字段, … DESC

降序排序

orderByDesc(R... columns)
orderByDesc(boolean condition, R... columns)

23.orderBy

默认排序

orderBy(boolean condition, boolean isAsc, R... columns)

 

24 having

求和

having(String sqlHaving, Object... params)
having(boolean condition, String sqlHaving, Object... params)

25.func

func 方法(主要方便在出现if…else下调用不同方法能不断链)

func(Consumer<Children> consumer)
func(boolean condition, Consumer<Children> consumer)

26. or

可以嵌套拼接

or()
or(boolean condition)

在这里插入图片描述

27。and

and(Consumer<Param> consumer)
and(boolean condition, Consumer<Param> consumer)

在这里插入图片描述

28.nested

nested(Consumer<Param> consumer)
nested(boolean condition, Consumer<Param> consumer)

在这里插入图片描述

29. apply

apply(String applySql, Object... params)
apply(boolean condition, String applySql, Object... params)

可以拼接时间格式
还有?占位符

apply("date_format(dateColumn,'%Y-%m-%d') = '2008-08-08'")--->date_format(dateColumn,'%Y-%m-%d') = '2008-08-08'")
apply("date_format(dateColumn,'%Y-%m-%d') = {0}", "2008-08-08")--->date_format(dateColumn,'%Y-%m-%d') = '2008-08-08'")

30.last

拼接

last(String lastSql)
last(boolean condition, String lastSql)

在这里插入图片描述

31.exists

拼接 EXISTS ( sql语句 ) 判断提交 满足

exists(String existsSql)
exists(boolean condition, String existsSql)

在这里插入图片描述

32。notExists 与上面相反

33.select

select(String... sqlSelect)
select(Predicate<TableFieldInfo> predicate)
select(Class<T> entityClass, Predicate<TableFieldInfo> predicate)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Network porter

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值