官方地址:
Mybatis-Plus:https://mp.baomidou.com/guide/generator.html

pom中导入mybatis plus的jar包,因为后面会涉及到代码生成,所以我们还需要导入页面模板引擎,这里我们用的是freemarker。

pom.xml导入以下依赖

      <!-- 加载mybatis-plus jar包 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<!--mybatis-plus反向生成-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.1</version>
</dependency>
<!-- 模板引擎 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency> <dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>

依赖

CodeGenarator代码

  1 import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
2 import com.baomidou.mybatisplus.core.toolkit.StringPool;
3 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
4 import com.baomidou.mybatisplus.generator.AutoGenerator;
5 import com.baomidou.mybatisplus.generator.InjectionConfig;
6 import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
7 import com.baomidou.mybatisplus.generator.config.FileOutConfig;
8 import com.baomidou.mybatisplus.generator.config.GlobalConfig;
9 import com.baomidou.mybatisplus.generator.config.PackageConfig;
10 import com.baomidou.mybatisplus.generator.config.StrategyConfig;
11 import com.baomidou.mybatisplus.generator.config.TemplateConfig;
12 import com.baomidou.mybatisplus.generator.config.po.TableInfo;
13 import com.baomidou.mybatisplus.generator.config.rules.DateType;
14 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
15 import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
16
17 import java.util.ArrayList;
18 import java.util.List;
19 import java.util.Scanner;
20
21
22 public class CodeGenerator {
23 /**
24 * <p>
25 * 读取控制台内容
26 * </p>
27 */
28 public static String scanner(String tip) {
29 Scanner scanner = new Scanner(System.in);
30 StringBuilder help = new StringBuilder();
31 help.append("请输入" + tip + ":");
32 System.out.println(help.toString());
33 if (scanner.hasNext()) {
34 String ipt = scanner.next();
35 if (StringUtils.isNotBlank(ipt)) {
36 return ipt;
37 }
38 }
39 throw new MybatisPlusException("请输入正确的" + tip + "!");
40 }
41
42 public static void main(String[] args) {
43 // 代码生成器
44 AutoGenerator mpg = new AutoGenerator();
45 // 全局配置
46 String module = "workticket";
47 GlobalConfig gc = new GlobalConfig();
48 String projectPath = System.getProperty("user.dir") + "/" + module;
49 gc.setOutputDir(projectPath + "/src/main/java");
50 //作者
51 gc.setAuthor(scanner("作者名"));
52 //打开输出目录
53 gc.setOpen(false);
54 // //xml开启 BaseResultMap
55 // gc.setBaseResultMap(true);
56 // //xml 开启BaseColumnList
57 // gc.setBaseColumnList(true);
58 // 实体属性 Swagger2 注解
59 gc.setSwagger2(true);
60 gc.setDateType(DateType.ONLY_DATE);
61 mpg.setGlobalConfig(gc);
62
63
64 // 数据源配置
65 DataSourceConfig dsc = new DataSourceConfig();
66 // dsc.setUrl("jdbc:mysql://localhost:3307/vueblog?" +
67 // "useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia" +
68 // "/Shanghai");
69 // dsc.setDriverName("com.mysql.cj.jdbc.Driver");
70 // dsc.setUsername("root");
71 // dsc.setPassword("001314");
72 // mpg.setDataSource(dsc);
73 dsc.setUrl("jdbc:postgresql://localhost:5432/test");
74 dsc.setSchemaName("public");
75 dsc.setDriverName("org.postgresql.Driver");
76 dsc.setUsername("postgres");
77 dsc.setPassword("123456");
78 mpg.setDataSource(dsc);
79
80 // 包配置
81 PackageConfig pc = new PackageConfig();
82 pc.setModuleName(module);
83 pc.setParent("com.demo.micro");
84 mpg.setPackageInfo(pc);
85
86 // 自定义配置
87 InjectionConfig cfg = new InjectionConfig() {
88 @Override
89 public void initMap() {
90 // to do nothing
91 }
92 };
93 // 如果模板引擎是 freemarker
94 String templatePath = "/templates/mapper.xml.ftl";
95 // 如果模板引擎是 velocity
96 // String templatePath = "/templates/mapper.xml.vm";
97 // 自定义输出配置
98 List<FileOutConfig> focList = new ArrayList<>();
99 // 自定义配置会被优先输出
100 focList.add(new FileOutConfig(templatePath) {
101 @Override
102 public String outputFile(TableInfo tableInfo) {
103 // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
104 return projectPath + "/src/main/resources/mapper/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
105 }
106 });
107 cfg.setFileOutConfigList(focList);
108 mpg.setCfg(cfg);
109 // 配置模板
110 TemplateConfig templateConfig = new TemplateConfig();
111 //执行main方法,在控制台直接输出表名,多个表名用,隔开结果
112 templateConfig.setXml(null);
113 mpg.setTemplate(templateConfig);
114 // 策略配置
115 StrategyConfig strategy = new StrategyConfig();
116 //数据库表映射到实体的命名策略
117 strategy.setNaming(NamingStrategy.underline_to_camel);
118 //数据库表字段映射到实体的命名策略
119 strategy.setColumnNaming(NamingStrategy.underline_to_camel);
120 //lombok模型
121 strategy.setEntityLombokModel(true);
122 //生成 @RestController 控制器
123 strategy.setRestControllerStyle(true);
124 strategy.setInclude(scanner("表名,多个英文逗号分割").split(","));
125 strategy.setControllerMappingHyphenStyle(true);
126 //表前缀
127 strategy.setTablePrefix("");
128 mpg.setStrategy(strategy);
129 mpg.setTemplateEngine(new FreemarkerTemplateEngine());
130 mpg.execute();
131 }
132 }

CodeGenerator

参考:https://blog.csdn.net/qq_44723773/article/details/118862972

Mybatis-Plus自动生成代码的CodeGenerator代码的更多相关文章

  1. mybatis generator 自动生成dao层映射代码

    资源: doc url :http://www.mybatis.org/generator/ download:https://github.com/mybatis/generator/release ...

  2. 使用Mybatis Generator自动生成Mybatis相关代码

    本文将简要介绍怎样利用Mybatis Generator自动生成Mybatis的相关代码: 一.构建一个环境: 1. 首先创建一个表: CREATE TABLE pet (name VARCHAR(2 ...

  3. SpringBoot 添加mybatis generator 自动生成代码插件

    自动生成数据层代码,提高开发效率 1.pom添加插件,并指定配置文件路径 <!-- mybatis generator 自动生成代码插件 --> <plugin> <gr ...

  4. idea中mybatis generator自动生成代码配置 数据库是sqlserver

    好长时间没有写博客了,最近公司要用java语言,开始学习java,属于初学者,今天主要记录一下mybatis generator自动生成代码,首先在如下图的目录中新建两个文件,如下图 generato ...

  5. SpringBoot入门篇--整合mybatis+generator自动生成代码+druid连接池+PageHelper分页插件

    原文链接 我们这一篇博客讲的是如何整合Springboot和Mybatis框架,然后使用generator自动生成mapper,pojo等文件.然后再使用阿里巴巴提供的开源连接池druid,这个连接池 ...

  6. IDEA Maven Mybatis generator 自动生成代码

    IDEA Maven Mybatis generator 自动生成代码 一.安装配置maven以及在Idea中配置maven 安装过程步骤可以看上面的博文,里面介绍得很详细. 二.建数据表 DROP ...

  7. IDEA Maven Mybatis generator 自动生成代码(实例讲解)(转)

    IDEA Maven Mybatis generator 自动生成代码(实例讲解) MyBatis Generator • 简称MBG,是一个专门为MyBatis框架使用者定制的代码生成器,可以快速的 ...

  8. (转)MyBatis框架的学习(七)——MyBatis逆向工程自动生成代码

    http://blog.csdn.net/yerenyuan_pku/article/details/71909325 什么是逆向工程 MyBatis的一个主要的特点就是需要程序员自己编写sql,那么 ...

  9. 使用MyBatis Generator自动生成MyBatis的代码

    这两天需要用到MyBatis的代码自动生成的功能,由于MyBatis属于一种半自动的ORM框架,所以主要的工作就是配置Mapping映射文件,但是由于手写映射文件很容易出错,所以可利用MyBatis生 ...

  10. 使用mybatis插件自动生成代码以及问题处理

    1.pom.xml中加入依赖插件 <!-- mybatis generator 自动生成代码插件 --> <plugin> <groupId>org.mybatis ...

随机推荐

  1. [转帖]logback:logback和slf4j中的:appender、logger、encoder、layout

    (1)appender 1.appender标签是logback配置文件中重要的组件之一.在logback配置文件中使用appender标签进行定义.可 以包含0个或多个appender标签. 2.a ...

  2. Postgresql 数据库设置备份以及简单清理磁盘空间和wal日志的方法

    1. 最近想简单的进行数据库的备份工作, 因为现在数据库主要是用的pg数据库 , 所以想到用文本的方式进行, 有清理了一下日志表的数据 这里一起记录一下. 先记录一下查看比较大的表的信息. 从网上找了 ...

  3. 自建邮箱服务器 EwoMail 发送邮件的办法

    总结来源: http://doc.ewomail.com/docs/ewomail/changguipeizhi 1. 首先这个机器不能安装dovecot等软件,不然安装脚本会失败. 2. 下载安装文 ...

  4. 什么是PWA 应用?核心技术有哪些

    在国内由于小程序的风生水起,PWA 应用在国内的状况一直都不是很好,PWA 和小程序有很多的相似性,但是 PWA 是由谷歌发起的技术,小程序是微信发起的技术,所以小程序在国内得到了大力的扶持,很快就在 ...

  5. Android APP升级时解析程序包时出现问题

    一个新的测试机在自动下载升级安装更新版本APP时,报出"解析程序包时出现问题"错误.原因众说纷纭, 一番搜索,下面的回答比较全面: https://stackoverflow.co ...

  6. el-popover 点击取消按钮,弹窗仍然无法关闭

    <el-popover placement="bottom" width="200" :ref="aa" :visible.sync= ...

  7. 【K哥爬虫普法】字节前高管,离职后入侵今日头条数据库,是阴谋、还是利诱?

    案情介绍 2016年至2017年间,张洪禹.宋某.侯明强作为被告单位上海晟品网络科技有限公司主管人员,在上海市共谋采用技术手段抓取北京字节跳动网络技术有限公司(办公地点位于本市海淀区北三环西路43号中 ...

  8. 2.1 C++ STL 数组向量容器

    Vector容器是C++ STL中的一个动态数组容器,可以在运行时动态地增加或减少其大小,存储相同数据类型的元素,提供了快速的随机访问和在末尾插入或删除元素的功能. 该容器可以方便.灵活地代替数组,容 ...

  9. BAT大厂面试的100道考题【算法、源码、架构、中间件、设计模式、网络、项目】,过60分的不到10%

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 独生子女生娃,没救了! 考题:https://docs.qq.com/form/page/DT ...

  10. STM32CubeMX教程30 USB_DEVICE - MSC外设_读卡器

    1.准备材料 正点原子stm32f407探索者开发板V2.4 STM32CubeMX软件(Version 6.10.0) keil µVision5 IDE(MDK-Arm) ST-LINK/V2驱动 ...