MyBatis-Plus 的代码生成功能十分人性化,即支持通过简单的配置实现,也可以通过自定义模板实现。

这里列出项目中的常用配置供参考,其他配置可以参考官网:https://baomidou.com/pages/981406

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.fill.Column;
import com.sevnce.base.core.global.controller.BaseController;
import com.sevnce.base.core.global.entity.BaseEntity;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List; /**
* 代码快速生成
*/
public class FastGenerator { /**
* 作者名
*/
public static final String AUTHOR = "廖航"; /**
* 生成的表名(多个表用英文逗号分隔,所有表输入 all)
*/
private static final String TABLES = "all"; /**
* jdbc 路径
*/
private static final String URL = "jdbc:mysql://dev.7tyun.com:9102/uam_new"; /**
* 数据库账号
*/
private static final String USER_NAME = "root"; /**
* 数据库密码
*/
private static final String PASS_WORD = "robot@db"; /**
* 项目所在目录
*/
private static final String PROJECT = "D:\\Project\\SEVNCE\\sevnce-cloud"; /**
* 模块名
*/
private static final String MODEL = "sevnce-modules\\sevnce-auth"; /**
* 包名
*/
private static final String PARENT = "com.sevnce.auth"; /**
* 业务名
*/
private static final String BUSINESS = "system"; /**
* 代码主路径(一般不用更改)
*/
private static final String MAIN = "src\\main\\java"; /**
* mapperXml 路径(一般不用更改)
*/
public static final String MAPPER = "src\\main\\resources\\mapper"; /**
* 父类公共字段(一般不用更改)
*/
public static final List<String> COMMON_COLUMNS = new ArrayList<>(Arrays.asList("id", "create_by", "create_name", "create_date", "update_by", "update_name", "update_date", "del_flag", "remarks", "remark1", "remark2", "remark3", "remark4", "remark5")); public static void main(String[] args) { // 开始代码生成
FastAutoGenerator.create(URL, USER_NAME, PASS_WORD)
// 全局配置
.globalConfig(builder -> { builder
// 禁止打开输出目录
.disableOpenDir()
// 指定输出目录(默认值: windows:D:// linux or mac : /tmp)
.outputDir(PROJECT + File.separator + MODEL + File.separator + MAIN)
// 开启 SpringDoc 模式
.enableSpringdoc()
// 作者名
.author(AUTHOR)
// 时间策略(默认值: DateType.TIME_PACK,java8 新的时间类型)
.dateType(DateType.TIME_PACK)
// 注释日期(默认值: yyyy-MM-dd)
.commentDate("yyyy-MM-dd HH:mm");
})
// 包配置
.packageConfig(builder -> { builder
// 包名
.parent(PARENT)
// 业务名
.moduleName(BUSINESS)
.entity("entity.po")
// mapperXml 生成路径
.pathInfo(Collections.singletonMap(OutputFile.xml, PROJECT + File.separator + MODEL + File.separator + MAPPER));
})
// 策略配置
.strategyConfig(builder -> { builder
// 设置需要生成的表名
.addInclude(getTables(TABLES))
// 控制层策略
.controllerBuilder()
// 设置父类
.superClass(BaseController.class)
// 生成 @RestController
.enableRestStyle()
// 服务层策略
.serviceBuilder()
// 服务类名称格式
.formatServiceFileName("%sService")
// 实体类策略
.entityBuilder()
// 设置父类
.superClass(BaseEntity.class)
// 添加父类公共字段
.addSuperEntityColumns(COMMON_COLUMNS)
// 开启 lombok 模型
.enableLombok()
// 不生成serialVersionUID(父类定义了)
.disableSerialVersionUID()
// 开启生成实体时生成字段注解
.enableTableFieldAnnotation()
// 逻辑删除字段名(数据库)
.logicDeleteColumnName("del_flag")
// 逻辑删除属性名(实体)
.logicDeletePropertyName("delFlag")
// 创建时间填充
.addTableFills(new Column("create_date", FieldFill.INSERT))
// 更新时间填充
.addTableFills(new Column("update_date", FieldFill.INSERT_UPDATE))
// 全局主键类型(自行设置)
.idType(IdType.INPUT)
// 是否允许覆盖现存文件
.enableFileOverride();
})
// 执行
.execute();
} /**
* 处理所有表的情况
* @param tables 表名
* @return 结果
*/
private static List<String> getTables(String tables) {
return "all".equals(tables) ? Collections.emptyList() : Arrays.asList(tables.split(","));
} }

MyBatis-Plus 代码生成(新)的更多相关文章

  1. MyBatis学习总结_15_定制Mybatis自动代码生成的maven插件

    ==================================================================================================== ...

  2. 我最喜欢的Mybatis 3.5新特性!超实用!

    Mybatis 3.5 发布有段时间了,终于支持了 Optional ,这么实用的特性,竟然还没人安利……于是本文出现了. 新特性比较简单,但非常实用,因为能大量简化恶心的判空代码. WARNING ...

  3. 通过eclipse mybatis generater代码生成插件自动生成代码

    Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件,由于手动书写很容易出错,我们可以利用Mybatis-Generator来帮我们自动生成文件.通过在Ecl ...

  4. MyBatis学习总结(15)——定制Mybatis自动代码生成的maven插件

    ==================================================================================================== ...

  5. Mybatis Generator 代码生成配置

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration ...

  6. Mybatis generator代码生成

    背景 项目中使用Mybatis做持久层框架,但由于开发成员水平不一,写dao的时候,各有各的偏好,有时候还会写出带sql注入漏洞的代码. 出现sql注入漏洞,一般是#和$的区别没弄明白: $ 直接把字 ...

  7. java web开发入门十一(idea maven mybatis自动代码生成)基于intellig idea

    6.idea maven mybatis逆向工程(代码生成器) 1.配置pom.xml 在plugins标签下添加mybatis-generator-maven-plugin <plugin&g ...

  8. MyBatis学习---逆向工程 Mybatis Generator代码生成

    [目录]

  9. 使用mysql8.+版本,使用mybatis的代码生成工具:mybatis-generator连接数据库时Unknown initial character set index '255' received from server. Initial client character set can be forced via the 'characterEncoding' property.

    Error connecting to database: (using class org.gjt.mm.mysql.Driver)Unknown initial character set ind ...

  10. 001-脚手架发展,基础代码结构+mybatis代码生成

    一.概述 脚手架是为了保证各施工过程顺利进行而搭设的工作平台. 编程领域中的“脚手架(Scaffolding)”指的是能够快速搭建项目“骨架”的一类工具. java变成中,架构师搭建的代码结构你到处拷 ...

随机推荐

  1. 浅谈 rxgo 在项目中的使用方式

    项目中使用到了 RxGo ,感觉现有的处理方式有一定的优势,当然也有一定的有劣势,遂记录下来,免得自己忘记. 本文介绍的只是 rxgo 的一种方式而已,如果你有不错的使用方式,请不吝赐教,谢谢. 对 ...

  2. 【Azure Function App】Java Function在运行中遇见内存不足的错误

    问题描述 在Function的Code+Test界面进行函数触发可以成功.因为Function为Blob Trigger,当在Blob容器下上传文件后,Function可以被正常触发但是报 outof ...

  3. 【Azure Developer】在微软云中国区,如何使用Microsoft GraphAPI连接到B2C Tenant

    问题描述 如题所述,当在中国区使用Microsoft GraphAPI连接B2C Tenant时候,如何来设置中国区的Endpoint呢?在GitHub的示例中,并没有示例介绍如何连接中国区.如 问题 ...

  4. 基于 Nebula Graph 构建图学习能力

    本文首发于 Nebula Graph Community 公众号 经常看技术文章的小伙伴可能会留意到除了正在阅读的那篇文章,在文章页面的正文下方或者右侧区域会有若干同主题.同作者的文章等你阅读:经常逛 ...

  5. Java 练习题 5岁的狗按人的年龄计算的话,前两年每一年是人的 10.5岁,之后每一年 * 增加4岁。如果5岁的狗、相当于人的多少年龄 * 10.5 + 10.5 + 4 +4 +4=33岁

    1 /*** 2 * 练习题 3 * 5岁的狗按人的年龄计算的话,前两年每一年是人的 10.5岁,之后每一年 4 * 增加4岁.如果5岁的狗.相当于人的多少年龄 5 * 10.5 + 10.5 + 4 ...

  6. Java实现书城项目(增删)

    书城项目 登录 dao 接口:UserDao Users login(String username,String password); 实现:UserDaoImpl QueryRunner quer ...

  7. springboot+kaptcha生成数学运算验证码和字符验证码

    使用以下代码只需要复制粘贴,修改一处文本生成器路径即可,文中有交代. 1.添加kaptcha依赖 <dependency> <groupId>com.github.penggl ...

  8. C++4中cast类型强制转换方式

    static_cast<type_id>(expr) 用于基本类型的转换,也可以将继承关系的对象指针或引用之间进行上下转型,但是在没有运行时类型检查的情况下,不保证类型安全. static ...

  9. GDB简洁指南

    启动gdb:gdb program 设置运行参数:set args 10 20 30 启动程序: run(r),start 显示源代码:list(l) 显示当前栈帧和运行行:frame(f) 设置显示 ...

  10. Linux 上 libcurl库 curl_easy_perform Crash(signal 11 - SIGSEGV)

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...