使用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

posted @   安详的苦丁茶  阅读(3694)  评论(2编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示