使用mybatis-plus进行多表的条件查询(模糊查询)
废话不多说,直接上代码.......
seivice层
/**
* 条件查询某某信息
*
* @param riderRiderLicenseVo
* @return
*/
public List<Rider> queryRiderByRiderLicense(RiderRiderLicenseVo riderRiderLicenseVo);
sevice实现层
/**
* 条件查询某某信息
*
* @param riderRiderLicenseVo
* @return
*/
@Override
public List<Rider> queryRiderByRiderLicense(RiderRiderLicenseVo riderRiderLicenseVo) {
//构造器
QueryWrapper riderQuery = new QueryWrapper();
if (StringUtils.isNotNull(riderRiderLicenseVo.getName())) {
riderQuery.like("name", riderRiderLicenseVo.getRiderName());
}
if (StringUtils.isNotNull(riderRiderLicenseVo.getJobNumber())) {
riderQuery.like("job_number", riderRiderLicenseVo.getRiderJobNumber());
}
if (StringUtils.isNotNull(riderRiderLicenseVo.getPhone())) {
riderQuery.like("phone", riderRiderLicenseVo.getRiderPhone());
}
if (StringUtils.isNotNull(riderRiderLicenseVo.getIdCardNum())) {
riderQuery.like("id_card_num", riderRiderLicenseVo.getIdCardNum());
}
if (StringUtils.isNotNull(riderRiderLicenseVo.getStatus())) {
riderQuery.eq("rider.status", riderRiderLicenseVo.getStatus());
}
//状态不为2的
riderQuery.ne("status", 2);
riderQuery.orderByDesc("create_time");
return riderMapper.queryRiderByRiderLicense(riderQuery);
}
mapper层
Constants.WRAPPER-->使得可传多个参数; 在mapper层中,如果你传多个参数的话一定加上@Param这个注解,不然会报某某错误,详情可以去试试。。。
/**
* 条件查询某某信息
*
* @param riderRiderLicenseVo
* @return
*/
public List<Rider> queryRiderByRiderLicense(@Param(Constants.WRAPPER) Wrapper<RiderRiderLicenseVo> riderRiderLicenseVo);
controller层
这里使用的mybatis-plus的内部插件分页,封装好请求分页数据。
@GetMapping("test")
public TableDataInfo selectRiderList(RiderRiderLicenseVo riderRiderLicenseVo) {
startPage();
List<Rider> list = riderService.queryRiderByRiderLicense(riderRiderLicenseVo);
return getDataTable(list);
}
分页接口还可以这么写
IPage<Station> findStationPage(IPage page, @Param(Constants.WRAPPER) Wrapper<Station> queryWrapper, DataScope dataScope);
附加
使用plus批量删除
service层
/**
* 删除商品信息
*
* @param productId 商品id多个
* @return
*/
public Integer deleteProductByIds(Long[] productId);
service实现层
/**
* 批量删除商品信息
*
* @param productId 商品id 多个
* @return
*/
@Override
public Integer deleteProductByIds(Long[] productId) {
Product product = new Product();
UpdateWrapper<Product> wrapper = new UpdateWrapper<>();
wrapper.in("product_id", productId);
product.setStatus(5);
return productMapper.update(product, wrapper);
}
这里的操作可以说是批量修改,不过我查询的时候过滤掉了。
到此结束了,如有疑问请下方留言哦,谢谢!
如遇到问题进qq群讨论:837146509