# mp-gen **Repository Path**: aning1024/mp-gen ## Basic Information - **Project Name**: mp-gen - **Description**: mybatis-plus 代码生成器,可以生成controller\service\serviceIml\mapper\xml文件,并可以生成相应的mybatis配置文件和swagger配置文件,对于新工程来说非常友好,欢迎各位使用 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-03-24 - **Last Updated**: 2023-09-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: MyBatis, mybatis-plus ## README 该项目后续不再维护,在此项目的基础上新建了另外一个项目,新项目地址: [mybatis-plus-code-maven-plugin](https://gitee.com/javalaoniu/mybatis-plus-code-maven-plugin) # mybatis-plus代码生成工具 - 可以快速生成xml、mapper(dao)、service、controller等文件,直接生成对单表的增删改查和分页5个接口; - 同时生成MybatisPlusConfig、SwaggerConfig两个配置类; - 同时生成BeanUtil、OrikaBeanMapper、QueryWrapperHelper三个工具类,在service层中使用; - 同时生成application-mp.yml文件 # 使用教程 demo例子:https://gitee.com/javalaoniu/mp-gen-example ## 准备生成工具项目 1. 拉取代码 git clone https://gitee.com/javalaoniu/mp-gen.git 2. 使用idea打开 ![image-20220325004444411](imgs/image-20220325004444411.png) ## 创建新的项目 1. 使用idea创建一个springboot项目 ![image-20220325004555562](imgs/image-20220325004555562.png) 2. 将要生成代码的表结构如下: ```mysql SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for t_demo -- ---------------------------- DROP TABLE IF EXISTS `t_demo`; CREATE TABLE `t_demo` ( `tid` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', `login_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT '' COMMENT '测试字段,登录名称', `profile` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '测试字段,个人介绍', `type` smallint(5) UNSIGNED NULL DEFAULT 0 COMMENT '测试字段,类型', `scope` int(11) NULL DEFAULT NULL COMMENT '测试字段,范围', `remember` tinyint(1) NULL DEFAULT 0 COMMENT '测试字段,记住我,1记住,0不记住', `logout_time` timestamp(0) NULL DEFAULT NULL COMMENT '测试字段,登出时间', `create_at` datetime(0) NULL DEFAULT NULL COMMENT '测试字段,创建时间,必要的字段', `update_at` datetime(0) NULL DEFAULT NULL COMMENT '测试字段,更新时间,必要的字段', `create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '测试字段,创建人,必要的字段', `update_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '测试字段,更新人,必要的字段', `delete_flag` bit(1) NULL DEFAULT NULL COMMENT '测试字段,逻辑删除,1删除,0未删除,必要的字段', PRIMARY KEY (`tid`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Compressed; SET FOREIGN_KEY_CHECKS = 1; ``` > 注意、注意、注意,表中必须包含create_at、update_at、create_by、update_by、delete_flag字段,在生成的代码中使用了这5个字段 ## 生成代码(在生成工具项目操作) 1. 配置必要的参数(配置生成工具类的参数) ```java // 需要其它配置请直接看代码,下面是简单的配置 MybatisPlusGeneratorProperties properties = MybatisPlusGeneratorProperties.newBuilder() .jdbcUrl("jdbc:mysql://localhost:3306/test_demo?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&tinyInt1isBit=false") .jdbcUser("root") .jdbcPwd("root!23") // 下面是代码生成后保存的路径(就是新项目的路径) .codeSavePath("D:/Workspace/ideaIU-2020.3.4.win.Project/demo") // 模块名(新项目的名称,也就是新项目路径的最后一个文件夹名称) .packageModuleName("demo") // 包前缀名,最终的包名就是 com.example.demo .packagePrefix("com.example") // 表的前缀,最后生成的类就不包含该前缀 .tablePrefix("t_") // 表名,多个表使用英文逗号分隔,不要包含空格,如t_demo,t_demo2,t_demo3 .tableNames("t_demo") // 接口的前缀地址 .requestMappingUrlPrefix("/test") // 启用swagger2 .withSwagger(true) .build(); MybatisPlusGenerator generator = new MybatisPlusGenerator(properties); generator.generate(); ``` 2. 运行MybatisPlusGenerator类的main函数 ![image-20220325005440316](imgs/image-20220325005440316.png) ## 配置运行新项目(在新项目操作) 1. 回到新项目,查看生成的文件 ![image-20220325010126148](imgs/image-20220325010126148.png) ![image-20220325010247037](imgs/image-20220325010247037.png) 可以看到新项目多了很多文件,如上图红色框的代码 2. 配置pom,最终pom文件如下 ```xml 4.0.0 org.springframework.boot spring-boot-starter-parent 2.5.4 com.example demo 0.0.1-SNAPSHOT demo Demo project for Spring Boot 1.8 org.springframework.boot spring-boot-starter-web mysql mysql-connector-java runtime org.projectlombok lombok true org.springframework.boot spring-boot-starter-test test com.baomidou mybatis-plus-boot-starter 3.2.0 io.springfox springfox-swagger2 2.9.2 io.swagger swagger-models io.swagger swagger-models 1.5.21 swagger-annotations io.swagger com.github.xiaoymin swagger-bootstrap-ui 1.9.5 io.springfox springfox-swagger-ui 2.9.2 io.springfox springfox-bean-validators 2.9.2 io.jsonwebtoken jjwt 0.9.1 ma.glasnost.orika orika-core 1.5.2 org.springframework.boot spring-boot-maven-plugin org.projectlombok lombok ``` > 注意pom文件的springboot版本,不能高于2.5.4,因为生成的代码中swagger使用的是swagger2,高于2.5.4版本swagger显示不正常 3. 重命名application.properties文件为application.yml,并添加如下配置 ```yaml spring: profiles: include: mp ``` 4. 刷新maven依赖 ![image-20220325011957522](imgs/image-20220325011957522.png) 5. 右键运行新项目 ![image-20220325012117917](imgs/image-20220325012117917.png) 6. 访问新项目swagger,测试生成代码接口是否可用 http://localhost:8080/doc.html ![image-20220325012333944](imgs/image-20220325012333944.png) ![image-20220325012509168](imgs/image-20220325012509168.png)