QueryWrapper多条件嵌套查询
1.Mybatis-Plus自带分页IPage<Product> page=new Page<>();page.setCurrent(current);page.setSize(size);PageBean pageBean = new PageBean();IPage<Product> productIPage = productMapper.selectPa
1.Mybatis-Plus自带分页
IPage<Product> page=new Page<>();
page.setCurrent(current);
page.setSize(size);
PageBean pageBean = new PageBean();
IPage<Product> productIPage = productMapper.selectPage(page, queryWrapper);
pageBean.setTotal((int)productIPage.getTotal());
pageBean.setCurrent((int)productIPage.getCurrent());
pageBean.setSize((int)productIPage.getSize());
pageBean.setRecords(productIPage.getRecords());
2.QueryWrapper多条件查询
//模糊查询
if (StringUtils.isNotBlank(queryName)){
queryWrapper.lambda().like(Product::getProductName, queryName);
}
if (StringUtils.isNotBlank(querySpecification)){
queryWrapper.lambda().like(Product::getSpecification, querySpecification);
}
//精确查询
if (StringUtils.isNotBlank(queryVcpus)){
queryWrapper.lambda().eq(Product::getVcpus, queryVcpus);
}
if (StringUtils.isNotBlank(queryDisk)){
queryWrapper.lambda().eq(Product::getDisk, queryDisk);
}
//时间范围查询
c.apply(StringUtils.isNotBlank(queryStartTime),
"date_format (time,'%Y-%m-%d') >= date_format('" + queryStartTime + "','%Y-%m-%d')")
.apply(StringUtils.isNotBlank(queryEndTime),
"date_format (time,'%Y-%m-%d') <= date_format('" + queryEndTime + "','%Y-%m-%d')");
//按时间降序排列
queryWrapper.select().orderByDesc("time");
productMapper.selectList(queryWrapper);
apply是拼接sql语句,一般用于把格式一样的当前时间和结束时间进行比较筛选
date_format (time,’%Y-%m-%d’)是将时间日期格式化,格式化时间戳为日期格式 如,’%Y-%m-%d’类型
time就是数据库时间字段的值
其本质上就是一条sql语句,applysql
queryWrapper本质上是一条sql语句,所以还需要selectList()来执行.
eq 等于=
ne 不等于<>
gt 大于>
ge 大于等于>=
lt 小于<
le 小于等于<=
like 模糊查询
3.单条件查询
不需要加lambda
queryWrapper.eq("product_name", productName);
product_name 是数据库字段
productName是where的条件,相当于product_name=#{productName}
4.lambda表达式的快速引用
Lambda方法引用:
方法引用就是Lambda的快捷写法。目标引用放在分隔符::前面,方法的名称放在后面。
Lambda表达式 < = > 等效的方法引用
(Apple a)-> a.getWeight() < = > Apple::getWeight
() -> Thread.currentThread().dumpStack() < = > Thread.currentThread()::dumpStack
(str, i) -> str.substring(i) < = > String::substring
(String s) -> System.out.println(s) < = > System.out::println
更多推荐
所有评论(0)