文章目录
- 前言 参考
- 一、 hutool 工具包
- 二、QueryWrapper(条件构造器)
- 1.alleq
- 2.eq
- 3. ne
- 4.gt
- 5.ge
- 6.lt
- 7.le
- 8.between
- 9.notBetween
- 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), ...)
- 17.notin NOT IN (value.get(0), value.get(1), ...)
- 18.insql IN ( sql语句 )
- 19.notinSql NOT IN ( sql语句 )
- 20.groupBy =:GROUP BY 字段, ...
- 21.orderByAsc ORDER BY 字段, ... ASC
- 22.orderByDesc ORDER BY 字段, ... DESC
- 23.orderBy
- 24 having
- 25.func
- 26. or
- 27。and
- 28.nested
- 29. apply
- 30.last
- 31.exists
- 32。notExists 与上面相反
- 33.select
前言 参考
一、 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)