# 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