# mybatis-plus-advance **Repository Path**: baomidou/mybatis-plus-advance ## Basic Information - **Project Name**: mybatis-plus-advance - **Description**: mybatis-plus-advance - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 12 - **Forks**: 3 - **Created**: 2022-03-17 - **Last Updated**: 2024-11-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 使用说明 本插件需要配合mybatis_plus_advance_idea_plugin 插件 一起使用(后期稳定了合并到mybatisx插件里去),我在项目中已经提供,在plugIn文件夹下。 项目依赖了此jar后,会自动生成一系列的方法 和自动生成mapper(可配置) ## 1.1 自动生成wrapper ```java @Data @TableName(value="user",genMapper = true) //这里设置为true即可自动生成mapper public class User { } ``` 自动生成的mapper是User的静态内部接口,所以要加mapper扫描目录到po目录比如: ```java @MapperScan(basePackages = {"com.fhs.test.pojo","com.fhs.test.mapper"}) ``` ## 1.2 单表查询 ```java new User().userId().eq(1).name().like("王").age().orderByAsc().one() ``` ## 1.3 多表join查询 ```java User user = new User(); user.userId().eq(1).select(User.USERID,User.NAME,User.SEX,User.SCHOOLID).innerJoin(School.class) .select(School.ID,School.SCHOOLNAME,School.REMARK).schoolName().like("一"); user.list(); ``` ## 1.4 支持方法说明 #### 1.4.1 class和提示已经支持自动生成的方法有: bean2Wrapper,list,select(String... fields),one,count,delete,update,innerJoin,leftJoin,rightJoin #### 1.4.2 已经支持的wrapper相关操作方法有: eq,neq,ge,gt,le,lt,like,notLike,likeLeft,likeRight,in,notIn,between,notBetween,orderByAsc,orderByDesc,isNull,notNull ## 1.5 前端高级查询API 前端高级查询API是一套标准的查询传参规范,可以在后端不写SQL的情况下根据前端参数自动组装wrapper,比如我想查询名字叫做王磊或者王磊1的并且性别为男的人可以这样传参: ```json { "sorter":[{ "property":"userId", "direction":"DESC" }], "querys":[{ "property":"name", "operator":"=", "value":"王磊", "relation":"OR", "group":"nameGroup" }, { "property":"name", "operator":"=", "value":"王磊1", "relation":"OR", "group":"nameGroup" },{ "property":"sex", "value":"男" }] } ``` 后端使用: ```java @PostMapping("filter") public List filter(@RequestBody QueryFilter filter){ return userService.selectList(filter.asWrapper(User.class)); } ``` # 代码阅读说明 本插件代码入口为:MybatisPlusModelInjectorAnnotationProcessor,为AST修改总入口,FuntionTools 为组装wrapper,执行sql返回结果。ASTBuilder AST语法树构造器。ModelExtension PO扩展接口。