【LambdaQueryWrapper】使用方法

代码示例:

LambdaQueryWrapper<Employee> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Employee::getUsername,employee.getUsername());
Employee emp = employeeService.getOne(queryWrapper);

方法:

setSqlSelectSELECT 查询字段
whereWHERE 语句,拼接 + WHERE 条件
whereWHERE 语句,拼接 + WHERE 条件
andAND 语句,拼接 + AND 字段=值
andNewAND 语句,拼接 + AND (字段=值)
orOR 语句,拼接 + OR 字段=值
orNewOR 语句,拼接 + OR (字段=值)
eq等于=
allEq基于 map 内容等于=
ne不等于<>
gt大于>
ge大于等于>=
lt小于<
le小于等于<=
like模糊查询 LIKE
notLikeNOT LIKE模糊查询
inIN 查询
notInNOT IN 查询
isNullNULL 值查询
isNotNullIS NOT NULL
groupBy分组 GROUP BY
havingHAVING 关键词
orderBy排序 ORDER BY
orderAscAsc 排序 ORDER BY
orderDescDESC 排序 ORDER BY
existsEXISTS 条件语句
notExistsNOT EXISTS 条件语句
betweenBETWEEN 条件语句
notBetweenNOT BETWEEN 条件语句
addFilter自由拼接 SQL
last拼接在最后,例如:last(“LIMIT 1”)

【QueryWrapper】使用方法与实例

1.使用方法

在这里插入图片描述

2.使用实例

【1】查询数据库指定字段

queryWrapper.select("id, name, create_date");

【2】查询数据库指定日期,忽略时分秒,日期相等即可查出

queryWrapper.apply("date_format(create_date, '%Y-%m-%d') = {0}", date);

【3】查询两个时间点之间的数据

1.包含昨天在内的七天:
queryWrapper.le("cur_date", DateUtils.getYesterday());
queryWrapper.ge("cur_date", DateUtils.getbeforeDays(DateUtils.getYesterday(), 7));

2.between方法
queryWrapper.between("complete_time", "2021-01-01 12:00:00", "2021-03-01 12:00:00");
 
3.附:获取某天的几天前的日期,年月日格式
public static String getbeforeDays(String appointDay,int days) {
        LocalDate date = parseStringToDate(appointDay);
        LocalDate beforeday = date.plusDays(-days);
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        return formatter.format(beforeday);
}

【4】设置 limit,通过 last()

queryWrapper.last("limit 0,1");

【5】查询某字段包含某值的数据

queryWrapper.like("name", name);

【6】某字段汇总值

queryWrapper.select("IFNULL(sum(quantity),0) as total");

【7】按照某字段倒序排列

queryWrapper.orderByDesc("create_date")

【8】按照某字段分组

queryWrapper.groupBy("gasstation_id");

【9】或

queryWrapper.and(wrapper -> wrapper.eq("type", 1).or().eq("type", 2));

【10】查询 id 在数据库中的值

List<Long> Ids;
queryWrapper.in("id", Ids);

【11】mapper.xml 中 like 用法

user.name like  "%"#{param.name}"%" 
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐