使用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); }

这里的操作可以说是批量修改,不过我查询的时候过滤掉了。

 

到此结束了,如有疑问请下方留言哦,谢谢!

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM