# mp-generator **Repository Path**: jumpersun/mp-generator ## Basic Information - **Project Name**: mp-generator - **Description**: mp代码生成器3.5.1+ - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-05-08 - **Last Updated**: 2023-05-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 演示效果: ![代码生成器](https://sunmingtypora.oss-cn-qingdao.aliyuncs.com/%E4%BB%A3%E7%A0%81%E7%94%9F%E6%88%90%E5%99%A8.gif) ## 数据库脚本: ```sql CREATE DATABASE `mybatisplus_db` USE `mybatisplus_db` SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for user -- ---------------------------- DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `id` bigint NOT NULL AUTO_INCREMENT, `name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `password` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `age` int NOT NULL, `tel` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of user -- ---------------------------- INSERT INTO `user` VALUES (1, 'tom', '123456', 12, '12345678910'); INSERT INTO `user` VALUES (2, 'jack', '123456', 8, '12345678910'); INSERT INTO `user` VALUES (3, 'jerry', '123456', 15, '12345678910'); INSERT INTO `user` VALUES (4, 'tom', '123456', 9, '12345678910'); INSERT INTO `user` VALUES (5, 'snake', '123456', 28, '12345678910'); INSERT INTO `user` VALUES (6, '张益达', '123456', 22, '12345678910'); INSERT INTO `user` VALUES (7, '张大炮', '123456', 16, '12345678910'); SET FOREIGN_KEY_CHECKS = 1; ``` ## 核心代码: ```java package com.sun; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.generator.FastAutoGenerator; import com.baomidou.mybatisplus.generator.config.OutputFile; import com.baomidou.mybatisplus.generator.config.TemplateConfig; import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.function.Consumer; /** * @author JumperSun * @date 2023-05-07-21:15 */ public class MpGenerator { public static void main(String[] args) { List tables = new ArrayList<>(); tables.add("user"); FastAutoGenerator.create("jdbc:mysql://localhost:3306/mybatisplus_db?serverTimezone=UTC", "root", "sm1208") // 数据库配置 // 全局配置 .globalConfig(builder -> { builder.author("jumpersun") // 设置作者 .outputDir(System.getProperty("user.dir")+"\\src\\main\\java") //输出路径 .enableSwagger() // 开启 swagger 模式 .commentDate("yyyy-MM-dd") .fileOverride(); // 覆盖已生成文件 }) // 包配置 .packageConfig(builder -> { builder.parent("com.sun") // 设置父包名 .moduleName("system") // 设置父包模块名 .entity("entity") .service("service") .serviceImpl("service.impl") .controller("controller") .mapper("mapper") .xml("mapper") .pathInfo(Collections.singletonMap(OutputFile.mapperXml,System.getProperty("user.dir")+"\\src\\main\\resources\\mapper")); }) // 策略配置 .strategyConfig(builder -> { builder.addInclude(tables) .addTablePrefix("p_") .serviceBuilder() .formatServiceFileName("%sService") .formatServiceImplFileName("%sServiceImpl") .entityBuilder() .enableLombok() .logicDeleteColumnName("deleted") .enableTableFieldAnnotation() .controllerBuilder() // 映射路径使用连字符格式,而不是驼峰 .enableHyphenStyle() .formatFileName("%sController") .enableRestStyle() .mapperBuilder() //生成通用的resultMap .enableBaseResultMap() .superClass(BaseMapper.class) .formatMapperFileName("%sMapper") .enableMapperAnnotation() .formatXmlFileName("%sMapper"); }) .templateConfig(new Consumer() { @Override public void accept(TemplateConfig.Builder builder) { // 实体类使用我们自定义模板 builder.entity("templates/myEntity.java"); } }) .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板 .execute(); } } ```