MyBatis-Plus 代码生成(新)
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 代码生成(新)的更多相关文章
- MyBatis学习总结_15_定制Mybatis自动代码生成的maven插件
==================================================================================================== ...
- 我最喜欢的Mybatis 3.5新特性!超实用!
Mybatis 3.5 发布有段时间了,终于支持了 Optional ,这么实用的特性,竟然还没人安利……于是本文出现了. 新特性比较简单,但非常实用,因为能大量简化恶心的判空代码. WARNING ...
- 通过eclipse mybatis generater代码生成插件自动生成代码
Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件,由于手动书写很容易出错,我们可以利用Mybatis-Generator来帮我们自动生成文件.通过在Ecl ...
- MyBatis学习总结(15)——定制Mybatis自动代码生成的maven插件
==================================================================================================== ...
- Mybatis Generator 代码生成配置
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration ...
- Mybatis generator代码生成
背景 项目中使用Mybatis做持久层框架,但由于开发成员水平不一,写dao的时候,各有各的偏好,有时候还会写出带sql注入漏洞的代码. 出现sql注入漏洞,一般是#和$的区别没弄明白: $ 直接把字 ...
- java web开发入门十一(idea maven mybatis自动代码生成)基于intellig idea
6.idea maven mybatis逆向工程(代码生成器) 1.配置pom.xml 在plugins标签下添加mybatis-generator-maven-plugin <plugin&g ...
- MyBatis学习---逆向工程 Mybatis Generator代码生成
[目录]
- 使用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 ...
- 001-脚手架发展,基础代码结构+mybatis代码生成
一.概述 脚手架是为了保证各施工过程顺利进行而搭设的工作平台. 编程领域中的“脚手架(Scaffolding)”指的是能够快速搭建项目“骨架”的一类工具. java变成中,架构师搭建的代码结构你到处拷 ...
随机推荐
- C++函数模板总结:
//C++提高编程 模板(泛型编程 STL)//模板不可以直接使用 它只是一个框架//模板的通用并不是万能的//语法//template<typename T>//函数模板两种方式//1. ...
- 4、dubbo的高可用
1.zookeeper宕机与dubbo直连 现象:zookeeper注册中心宕机,还可以消费dubbo暴露的服务. 原因: 健壮性 l 监控中心宕掉不影响使用,只是丢失部分采样数据 l 数据库宕掉后, ...
- 蓬莱enclave TEE编译和运行说明
蓬莱enclave-spmp 编译和运行说明 蓬莱是一个RISC-V TEE系统,其设计具有安全性,高性能和可扩展性.基于PMP的OpenSBI版本的蓬莱Enclave使用可以参考下文,具体仓库地址为 ...
- 【风控算法】二、SQL->Python->PySpark计算KS,AUC及PSI
KS,AUC 和 PSI 是风控算法中最常计算的几个指标,本文记录了多种工具计算这些指标的方法. 生成本文的测试数据: import pandas as pd import numpy as np i ...
- modalError.vue 错误提示框 vue2 iview
需求 一个错误提示框,后台需要有换行,默认没有换行,做一个支持换行的全局错误提示函数. 注意 代码只展示原理,直接不能使用,里面有getAc,有需要参考 https://www.cnblogs.com ...
- ThinkPHP 3.2.3
说明手册 https://www.kancloud.cn/manual/thinkphp/1706 下载地址 https://gitee.com/liu21st/thinkphp32 thinkPHP ...
- ubuntu环境下python下使用OpenCV库读取USB摄像头的画面
一 概念 OpenCV是一个开源的计算机视觉和机器学习软件库.它可以使用pip命令行中的以下命令安装:"pip install opencv-python" 这个做视觉处理,非常的 ...
- C语言中的rand()函数实例分析
一 前记: c语言中需要用到随机值得时候,每次都自己写,这样太浪费效率了,这次遇到了一个经典的代码,就珍藏起来吧. 二 实例分析: 1 #include <stdio.h> 2 3 int ...
- 加密与安全:非对称加密算法 RSA 1024 公钥、秘钥、明文和密文长度
RSA 1024 是指公钥及私钥分别是 1024bit,也就是 1024/8 = 128Bytes. RSA 原理 RSA 算法密钥长度的选择是安全性和程序性能平衡的结果,密钥长度越长,安全性越好,加 ...
- 键鼠共享工具使用(软KVM)-barrier(symless开源版)
作用:通过软件方式,实现KVM,即一套键盘鼠标可以控制多台电脑,并可以进行粘贴板共享. 1.安装 打开https://github.com/debauchee/barrier,进releases下载对 ...