# mybatisplus-smart-query **Repository Path**: hddara/mybatisplus-smart-query ## Basic Information - **Project Name**: mybatisplus-smart-query - **Description**: mybatisplus 智能查询框架 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-07-09 - **Last Updated**: 2024-07-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于MybatisPlus的自动查询扩展 ## 项目简介 - 本项目创建目的:为了方便实现数据库查询,使用注解方式生成查询条件。 ### 注意事项: - 有效版本从 1.0.0 开始 ## 使用方法 ### 引入依赖 注:最新版本[查看Maven Central](https://central.sonatype.com/artifact/io.gitee.hddara/mybatisplus-smart-query) ```xml io.gitee.hddara mybatisplus-smart-query 1.0.0 ``` ### 开启使用 #### 1、Controller ```java @RestController @RequestMapping("/coupon") public class CouponController { /** * 分页查询 * @param query * @return */ @GetMapping("page") public IPage page(CouponPageQuery query) { return couponService.page(query); } } ``` #### 2、Service ```java @Service public class CouponService { @Resource private CouponMapper couponMapper; public IPage page(CouponPageQuery query) { MPJLambdaWrapper wrapper = query.wrapper(); // 获取查询 Wrapper,已组装好查询条件 wrapper.eq(Coupon::getUserId, 1); wrapper.orderByDesc(Coupon::getCreateDateTime); return couponMapper.selectJoinPage(query.getPage(), Coupon.class, query.wrapper()); } } ``` #### 3、CouponPageQuery ```java @Data public class CouponPageQuery extends PageQuery { @Query(join = @JoinTo( // 默认左关联 rightTable = CouponProduct.class, // 关联其他表查询 rightField = CouponProduct.Fields.id, // 关联关联字段,如不配置则先取,props属性的第一个值,如果props为空则取字段名:couponProductId association = Coupon.Fields.couponProduct // 组合查询对象,将关联的字表映射到字段上(支持一对一 和 一对多) ), sort = Sort.ASC) // 关于排序问题:此处排序作用于所有props;除此之外还有一种排序方式:前段请求时,携带orders参数格式为:(属性:asc/desc,属性:asc/desc) // http://127.0.0.1:8080/coupon/page?current=1&size=10&orders=sort:DESC,id:ASC private Integer couponProductId; @Query(join = @JoinTo( leftField = Coupon.Fields.id, rightTable = CouponUsed.class, association = Coupon.Fields.couponUsedList )) private Integer couponId; @Query(props = "tCouponProduct.title", type = Type.LIKE) // props非主表字段时,规则为:表名 + . + 字段名 private String title = "7天"; } ``` ## 联系方式 Wechat: HDdara