zoukankan      html  css  js  c++  java
  • 使用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);
        }

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

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

  • 相关阅读:
    项目文件.NET下编译C++代码时出现fatal error C1083: 无法打开包括文件:“xuhk_JNIHelloWorld.h”: No such file or directory错误的解决方法。
    消息错误INSTALL_FAILED_INSUFFICIENT_STORAGE
    元素链表数据结构:静态链表
    对象类Android应用程序资源管理器(Asset Manager)的创建过程分析
    23种模式中的外观模式
    接口与抽象类的区别
    java中通用的数据库连接与关闭方法类的简单写法
    对Hello China操作系统比较客观的评价
    Hello China V1.68版本源代码、安装包和相应文档,欢迎下载适用
    使用Service Bus Explorer 工具来管理和测试Topics、 Queues 和 Relay Services
  • 原文地址:https://www.cnblogs.com/ckfeng/p/14579551.html
Copyright © 2011-2022 走看看