导入生成器需要的依赖坐标:

<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.2.0</version>
</dependency> <dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.1</version>
</dependency> <dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.29</version>
</dependency> <dependency>
<groupId>com.ibeetl</groupId>
<artifactId>beetl</artifactId>
<version>3.0.11.RELEASE</version>
</dependency>

新建了一个普通Maven空项目:

创建我们的代码生成器程序:

import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.apache.commons.lang3.StringUtils; import java.util.Scanner; /**
* @author DaiZhiZhou
* @file MP-Spring
* @create 2020-08-06 9:11
*/
public class CodeGenerator { /**
* <p>
* 读取控制台内容
* </p>
*/
public static String scanner(String tip) {
Scanner scanner = new Scanner(System.in);
StringBuilder help = new StringBuilder();
help.append("请输入").append(tip).append(":");
System.out.println(help.toString());
if (scanner.hasNext()) {
String ipt = scanner.next();
if (StringUtils.isNotEmpty(ipt)) {
return ipt;
}
}
throw new MybatisPlusException("请输入正确的" + tip + "!");
} public static void main(String[] args) {
// 代码生成器
AutoGenerator mybatisPlusCodeGenerator = new AutoGenerator(); // 全局配置
GlobalConfig gc = new GlobalConfig(); // 先得到当前工程目录
String projectPath = System.getProperty("user.dir");
// 是maven项目的结构,就是工程目录 + /src/main/java
gc.setOutputDir(projectPath + "/src/main/java"); //gc.setOutputDir("D:\\workspace-sts\\0520adv\\02_mp_springboot/src/main/java"); // 设置生成文件的作者信息
gc.setAuthor("Echo42"); //当代码生成完成之后是否打开代码所在的文件夹
gc.setOpen(true); // gc.setSwagger2(true); 实体属性 Swagger2 注解
//gc.setServiceName("%sService"); // 将上述的全局配置注入
mybatisPlusCodeGenerator.setGlobalConfig(gc); // 数据源配置
DataSourceConfig dataSourceConfiguration = new DataSourceConfig(); dataSourceConfiguration.setUrl("jdbc:mysql://localhost:3306/oa?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=UTC"); // dataSourceConfiguration.setSchemaName("public");
dataSourceConfiguration.setDriverName("com.mysql.cj.jdbc.Driver");
dataSourceConfiguration.setUsername("root");
dataSourceConfiguration.setPassword("123456"); mybatisPlusCodeGenerator.setDataSource(dataSourceConfiguration); // 包配置
PackageConfig pc = new PackageConfig(); // 设置父级包名
pc.setParent("cn.echo42");//controller entity service service.impl pc.setModuleName(scanner("模块名"));
//pc.setModuleName("sys"); // 实体类名称
pc.setEntity("domain"); // mapper包名称
pc.setMapper("mapper"); // mapper对应的映射器xml
pc.setXml("mapper.xml"); // 业务包层名称
pc.setService("service"); // 业务接口的实现类包
pc.setServiceImpl("service.impl"); // 控制器包名称
pc.setController("controller"); // 装填包信息对象
mybatisPlusCodeGenerator.setPackageInfo(pc); // 策略配置
StrategyConfig strategy = new StrategyConfig(); //设置字段和表名的是否把下划线完成驼峰命名规则
strategy.setNaming(NamingStrategy.underline_to_camel); strategy.setColumnNaming(NamingStrategy.underline_to_camel); //设置生成的实体类继承的父类
//strategy.setSuperEntityClass("com.sxt.BaseEntity"); //是否启动lombok
strategy.setEntityLombokModel(true); //是否生成resetController
strategy.setRestControllerStyle(true); // 公共父类
//strategy.setSuperControllerClass("com.sxt.BaseController"); // 写于父类中的公共字段
//strategy.setSuperEntityColumns("person_id","person_name"); //要设置生成哪些表 如果不设置就是生成所有的表
//strategy.setInclude(scanner("表名,多个英文逗号分割").split(",")); strategy.setControllerMappingHyphenStyle(true); //strategy.setTablePrefix(pc.getModuleName() + "_");
strategy.setTablePrefix("sys_"); mybatisPlusCodeGenerator.setStrategy(strategy); mybatisPlusCodeGenerator.execute();
}
}

点击运行:

然后生成的这个目录结构:

基础四层就帮我们自动创建完成了:

controller报错是因为没有加入SpringMVC:

如果是SSMP的开发模式,编写结构文件使用这个能省力很多,

但是对结构不清楚的情况还是多人肉手写熟悉熟悉

【Mybatis-Plus】06 代码生成器 CodeGenerator的更多相关文章

  1. 【MyBatis学习06】_parameter:解决There is no getter for property named in class java.lang.String

    我们知道在mybatis的映射中传参数,只能传入一个.通过#{参数名} 即可获取传入的值. Mapper接口文件: public int delete(int id) throws Exception ...

  2. 【MyBatis学习06】输入映射和输出映射

    在前面几篇博文的例子中也可以看到mybatis中输入映射和输出映射的身影,但是没有系统的总结一下,这篇博客主要对这两个东东做一个总结.我们知道mybatis中输入映射和输出映射可以是基本数据类型.ha ...

  3. MyBatis学习06(动态SQL和缓存)

    10.动态SQL 10.1 什么是动态SQL 动态SQL指的是根据不同的查询条件 , 生成不同的Sql语句. 官网描述: MyBatis 的强大特性之一便是它的动态 SQL.如果你有使用 JDBC 或 ...

  4. MyBatis Generator 详解 专题

    idea中有plugin可提高效率: http://www.henryxi.com/use-idea-mybatis-plugin-generate-mapper-files eg: <?xml ...

  5. MyBatis Generator 详解

    MyBatis Generator中文文档 MyBatis Generator中文文档地址:http://mbg.cndocs.tk/ 该中文文档由于尽可能和原文内容一致,所以有些地方如果不熟悉,看中 ...

  6. MyBatis Generator 详解 【转来纯为备忘】

    版权声明:版权归博主所有,转载请带上本文链接!联系方式:abel533@gmail.com   目录(?)[+] MyBatis Generator中文文档 运行MyBatis Generator X ...

  7. mybatis Generator配置文件详解

    这里按照配置的顺序对配置逐个讲解,更细的内容可以配合中文文档参照. 1. 配置文件头 <?xml version="1.0" encoding="UTF-8&quo ...

  8. 转载:mybatis自动生成

    MyBatis Generator中文文档 MyBatis Generator中文文档地址: http://generator.sturgeon.mopaas.com/ 该中文文档由于尽可能和原文内容 ...

  9. MyBatis Generator中文文档

    MyBatis Generator中文文档 MyBatis Generator中文文档地址: http://mbg.cndocs.tk/ 该中文文档由于尽可能和原文内容一致,所以有些地方如果不熟悉,看 ...

  10. MyBatis Generator 详解(转)

    MyBatis Generator中文文档 MyBatis Generator中文文档地址:http://mbg.cndocs.tk/ 该中文文档由于尽可能和原文内容一致,所以有些地方如果不熟悉,看中 ...

随机推荐

  1. R-tree算法

    R-tree是一种用于处理空间数据的自平衡搜索树结构,特别适合于存储和查询二维或更高维度的空间对象,如点.线段.矩形等.它在地理信息系统.计算机图形学.数据库等领域有广泛应用.R树通过将空间分割成几个 ...

  2. 一个开源且全面的C#算法实战教程

    前言 算法在计算机科学和程序设计中扮演着至关重要的角色,如在解决问题.优化效率.决策优化.实现计算机程序.提高可靠性以及促进科学融合等方面具有广泛而深远的影响.今天大姚给大家分享一个开源.免费.全面的 ...

  3. php反序列化个人笔记

    反序列化 什么是反序列化? 格式转换 序列化:对象转换为字符串或者数组等格式 反序列化:将数组或字符串转换成对象 为什么会出现安全漏洞? 魔术方法 如何利用漏洞? 通过构造pop链,找到代码的逻辑漏洞 ...

  4. es语法 rest api 模拟根据歌手,歌名,歌词来搜索demo

    #创建索引songs_v1 PUT { - "acknowledged": true, "shards_acknowledged": true, "i ...

  5. mysql5.7msi安装

    本文介绍的是只安装MySQL数据库的过程,并不包含各种其他附加工具.安装完成之后通常使用Navicat或SQLyog进行可视化操作. 清华的镜像网站只保存最新的几个MySQL版本,所以直链可能已经失效 ...

  6. Bloom Filter布隆过滤器

    简介 本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构(probabilistic data structure),特点是高效地插入和查询,可以用来告诉你 "某样东西一定不存在或者可 ...

  7. 自定义U盘图标

    有没有想过你可以自定义U盘的图标 我才不想用这么Low的图标: 我的图标是这样的: 不好意思,本人叫郭飞,嘻嘻... 下面给出教程: 1.U盘里新建文件autorun.inf,并用记事本打开进行编辑 ...

  8. Linux-swap管理

    什么是Swap Swap:交换空间,即虚拟内存,用于解决内存不足的问题. 在内存不足的时候,会将内存中不常使用的部分存入硬盘,使得内存得以腾出空间供新的程序使用. 那么,虚拟内存即为硬盘中的部分. S ...

  9. 15-BFC

    01 BFC官方解释 https://www.w3.org/TR/CSS2/visuren.html#normal-flow 大致意思如下 02 什么情况下会形成BFC MDN解释 https://d ...

  10. DotNetGuide荣登GitHub C#中文 Trending 月榜第一

    前言 发现最近有一大批应届生同学和Java转.NET的同学加入了我们的DotNetGuide技术社区交流6群(其他5个群都已满500人,6群也已有340多个小伙伴了)今天看到DotNetGuide荣登 ...