首页 > 其他分享 >mybatis-plus自动生成代码

mybatis-plus自动生成代码

时间:2023-09-02 18:44:39浏览次数:34  
标签:String generator 代码 entityName 生成 plus mybatis com builder

1.引入pom依赖

<!-- mybatis-plus generator -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.2</version>
</dependency>
<!-- velocity -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>

2.构建自动生成代码类 test/xx/xx
package com.xxx;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.TemplateType;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

import java.util.Arrays;
import java.util.List;


/**
* 生成代码
*
* @author xxx
* @since 2022/9/8 18:24
*/
public class MyBatisPlusGenerator {
public static void main(String[] args) {
// 要生成的数据库表名
List<String> tableNames = Arrays.asList("t_org_info");
// 创建代码生成工具类
FastAutoGenerator generator = create(tableNames, "system.org","T");
// 执行生成代码
generator.execute();
}

private static FastAutoGenerator create(List<String> tableNames, String packageName,String tablePre) {
// 数据库连接地址,
String url = "jdbc:mysql://127.0.0.1:3306/dev?autoReconnect=true&useServerPreparedStmts=false&rewriteBatchedStatements=true&characterEncoding=UTF-8&useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai";
// 数据库用户名
String name = "root";
// 数据库密码
String password = "root";
FastAutoGenerator generator = FastAutoGenerator.create(url, name, password)
// 全局配置
.globalConfig(builder -> {
// 获取生成的代码路径,这里没有写死,是运行时获取的,这样可以防止不同的开发人员来回修改生成路径的问题。
String outputDir = System.getProperty("user.home") + "\\Desktop\\generatorCode";
builder.outputDir(outputDir)
.dateType(DateType.ONLY_DATE)
// 生成的类注释中的作者名称,为了统一表示,这里写死了
.author("xxx");
})
// 生成的代码包路径配置
.packageConfig(builder -> {
// 生成的代包公共路径
builder.parent("com.xxx.xxx." + packageName);
// 生成的mapper xml的存放目录,是在parent路径下面的
builder.xml("mapper")
// 生成的实例类目录
.entity("domain.entity")
// 生成的service目录
.service("service")
// 生成的ampper目录
.mapper("dao");

}).strategyConfig(builder -> {
// 添加要生成的的数据库表
builder.addInclude(tableNames);
// 启用大写模式
//.enableCapitalMode();
// 配置生成的实体类策略,不生成serialVersionID
builder.entityBuilder().disableSerialVersionUID()
// 如果数据库表名带下划线,按驼峰命名法
.columnNaming(NamingStrategy.underline_to_camel)
// 开启AR模式
.enableActiveRecord()
// 使用lombok
.enableLombok()
// 标记实例类的主键生成方式,如果插入时没有指定,刚自动分配一个,默认是雪花算法
.idType(IdType.ASSIGN_ID)
.enableTableFieldAnnotation()
// 指定生成的实体类名称
.convertFileName(entityName -> entityName.replace(tablePre,"") + "Entity")
.mapperBuilder().convertXmlFileName(entityName -> entityName.replace(tablePre,"") + "Dao")
.convertMapperFileName(entityName -> entityName.replace(tablePre,"") + "Dao")
// 指定生成的service接口名称
.serviceBuilder().convertServiceFileName(entityName -> entityName.replace(tablePre,"") + "ServiceImpl")
// 指定生成的serviceImpl的名称
.convertServiceImplFileName(entityName -> entityName.replace(tablePre,"") + "Service");

}).templateConfig(builder -> {
// 不生成Controller
builder.disable(TemplateType.CONTROLLER);
});
return generator;
}

}



标签:String,generator,代码,entityName,生成,plus,mybatis,com,builder
From: https://www.cnblogs.com/wlwtop/p/17674039.html

相关文章

  • Lnton羚通智能分析算法AI智慧工地视频分析系统代码
    AI智慧工地视频分析系统通过yolov8网络模型视频智能分析技术,AI智慧工地视频分析算法模型对画面中物的不安全状态以及现场施工作业人员的不合规行为及穿戴进行全天候不间断实时分析,发现有人不合规行为及违规穿戴抽烟打电话等立即自动抓拍存档告警。在架构方面,E-ELAN只改变了计算块......
  • 代码扫描提示:java: Compilation failed: internal java compiler error
    检查Idea中编译的版本和项目的是否一致 ......
  • sql server id在字符串集中的 sql plus主机字符串
    SQL*PLUS里主机字符串 主机字符串就是描述主机的字符串,通常在oracle_home/network/admin下的tnsnames.ora文件里面配置 主机字符串包如下其中MYORCL就是主机字符串MYORCL=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PO......
  • 2、Vue中安装element-plus
    1、在项目终端命令行中输入:pnpminstallelement-plus--save 2、项目中导入elementimportElementPlusfrom'element-plus'import'element-plus/dist/index.css' 3、使用element组件 ......
  • 保存完整HTML代码 保存部分HTML代码,及其他方法
    print(driver.page_source)#定位至节点elem=driver.find_element(By.ID,"info")htm_dat=elem.get_property("outerHTML")print('获取节点的html源码:',htm_dat)htm_name=elem.get_property("nodeName")print('节点名称:',......
  • 学生信息管理系统代码分享 - C语言控制台程序
    【代码要求】   设计与实现学生信息管理系统,实现对学生信息的管理,并且学生的学号是代表该学生信息的唯一性标志。另外学生信息包括:学号、姓名、性别、班级、身份证号、出生日期、联系方式。   该系统具有以下几个功能:   1.系统界面美观、简洁,采用菜单式显示......
  • Node为nuxt.js 的源代码打包的执行命令
    为Node源代码打包的执行命令#清理缓存数据/root/.nvm/versions/node/v14.17.6/bin/npmcacheclean--force#删除之前使用过的插件模板文件等,若下面有.nuxt文件也一下做删除rm-rfnode_modulespackage-lock.json.nuxt#设置淘宝的npm源/root/.nvm/versions/node/v14.17......
  • 学生信息管理系统代码分享 - C语言控制台程序
    【代码要求】   设计与实现学生信息管理系统,实现对学生信息的管理,并且学生的学号是代表该学生信息的唯一性标志。另外学生信息包括:学号、姓名、性别、班级、身份证号、出生日期、联系方式。   该系统具有以下几个功能:   1.系统界面美观、简洁,采用菜单式显示......
  • 还不知道将代码上传到云端仓库?来gitee
    1、安装git工具https://git-scm.com/downloads 下载一个git 并安装,打开gitbash可用创建码云仓库https://gitee.com/ 注册一个账号https://git-scm.com/downloads新建仓库 来个demo,成功提示一些入门命令,这些命令可以直接在gitbash界面用,来试一下gitconfig--globalu......
  • Git上传代码到远程仓库
    前言Git是一种分布式版本控制系统,广泛用于管理项目的源代码。它可以追踪文件的修改、记录历史变更、协调多人合作开发,并提供了回滚、分支管理、合并等功能。下面介绍一下Git如何上传代码到远程仓库1.检查状态在提交代码之前,你可以使用gitstatus命令来查看当前仓库中的修改和文......