# mybatis-plus-wrapper **Repository Path**: hdmvp/mybatis-plus-wrapper ## Basic Information - **Project Name**: mybatis-plus-wrapper - **Description**: 简化QueryWrapper的注解实现 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2022-08-06 - **Last Updated**: 2022-08-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 简介 mybatis-plus的增强工具包,在用mybatis-plus写查询接口时,经常会写出类似下面的代码 ```java LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(Student.class) .like(StringUtils.isNotBlank(student.getName()), Student::getName, student.getName()) .eq(student.getSex() != null, Student::getSex, student.getSex()) .ge(student.getAge() != null, Student::getAge, student.getAge()); ``` mp自带的@TableField(condition=SqlCondition.XX)并不能很好的控制要查询的字段,并且只支持eq、noteq、like、likeleft和likeright(v3.4.3) 所以在字段比较多的情况下会很繁琐,这个工具包的目的就是为了解决以上这种情况,简化繁琐的QueryWrapper的条件构建。 ## 使用说明 ### 1. 在pom.xml中引入jar包 ```xml com.gitee.wenbo0 mybatis-plus-wrapper 0.2 ``` ### 2. 在实体类或DTO中需要查询的字段上增加注解@Wrapper ```java @Getter @Setter @Accessors(chain = true) public class Student { private String id; @Wrapper(WrapperType.LIKE) private String name; @Wrapper private Integer sex; @Wrapper(WrapperType.GE) private Integer age; } ``` 在构建QueryWrapper的时候使用 ```java QueryWrapper queryWrapper = WrapperUtil.buildQueryWrapper(student); ``` 这时WrapperUtil构建的QueryWrapper等价于简介中的代码构建的QueryWrapper。 ### 3. @Wrapper注解介绍 注解有四个属性 分别是 ```java /** * 条件类型 */ WrapperType value() default WrapperType.EQ; /** * 数据库字段名 默认为pojo字段名小驼峰转下划线 */ String columnName() default ""; /** * 是否忽略空白字符串 */ boolean ignoreBlank() default true; /** * 是否忽略null */ boolean ignoreNull() default true; ``` #### 3.1 value可选值为EQ, NE, LIKE, NOT_LIKE, LIKE_LEFT, LIKE_RIGHT, LT, GT, LE, GE, IN, NOT_IN,分别调用mybatis-plus中的同名方法,默认值为EQ 目前IN和NOT_IN只支持数组和字符串类型, 字符串类型默认逗号分割字符串 #### 3.2 ignoreNull设置为false时将会把null作为条件查询 #### 3.3 ignoreBlank设置为false时,并且字段为String类型,将会把空字符串作为条件查询 ### 更新记录 0.2 WrapperType类增加NE和NOT_LIKE类型