Java:MyBatis-Plus-AutoGenerator代码生成器

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: Java:MyBatis-Plus-AutoGenerator代码生成器

文档:https://baomidou.com/guide/generator.html

配置参数:https://baomidou.com/config/generator-config.html

依赖

<!--代码生成器-->
<dependency>
  <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.4.0</version>
</dependency>
<!--模板引擎 依赖-->
<dependency>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity-engine-core</artifactId>
    <version>2.2</version>
</dependency>
<!-- 数据库驱动 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.22</version>
</dependency>
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.12</version>
    <scope>provided</scope>
</dependency>

最简单的代码示例

package com.demo.mybatis;
import com.baomidou.mybatisplus.annotation.FieldFill;
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.po.TableFill;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import java.util.ArrayList;
/**
 * 自动生成类
 **/
public class CodeGenerator {
    /**
     * 必要的配置
     */
    // 生成代码的表名
    private static final String TABLE_NAME = "table_person";
    // 数据库相关配置
    private static final String JDBC_URL = "jdbc:mysql://localhost:3306/data?useUnicode=true&useSSL=false&characterEncoding=utf8";
    private static final String DRIVER_NAME = "com.mysql.cj.jdbc.Driver";
    private static final String USERNAME = "root";
    private static final String PASSWORD = "123456";
    // 注释显示的作者
    private static final String AUTHOR = "mouday";
    // 代码生成指定包名
    private static final String PACKAGE_NAME = "com.example";
    public static void main(String[] args) {
        // ======= 全局配置 =======
        GlobalConfig globalConfig = new GlobalConfig();
        String dir = System.getProperty("user.dir");
        globalConfig.setOutputDir(dir + "/src/main/java"); // 输出目录
        globalConfig.setOpen(false); // 不打开输出目录
        globalConfig.setAuthor(AUTHOR); // 开发人员
        // ======= 数据源配置 =======
        DataSourceConfig dataSource = new DataSourceConfig();
        dataSource.setDriverName(DRIVER_NAME);
        dataSource.setUsername(USERNAME);
        dataSource.setPassword(PASSWORD);
        dataSource.setUrl(JDBC_URL);
        // ======= 包配置 =======
        PackageConfig packageConfig = new PackageConfig();
        packageConfig.setParent(PACKAGE_NAME);
        // ======= 策略配置 =======
        StrategyConfig strategy = new StrategyConfig();
        strategy.setNaming(NamingStrategy.underline_to_camel);      // 表名
        strategy.setColumnNaming(NamingStrategy.underline_to_camel); // 字段
        strategy.setInclude(TABLE_NAME);     // 需要生成的表
        strategy.setEntityLombokModel(true); // lombok模型
        strategy.setRestControllerStyle(true); // Rest控制器
        // 自动填充配置
        TableFill createTime = new TableFill("create_time", FieldFill.INSERT);
        TableFill updateTime = new TableFill("update_time", FieldFill.UPDATE);
        ArrayList<TableFill> tableFills = new ArrayList<>();
        tableFills.add(createTime);
        tableFills.add(updateTime);
        strategy.setTableFillList(tableFills);
        // ======= 执行生成 =======
        AutoGenerator autoGenerator = new AutoGenerator();
        autoGenerator.setGlobalConfig(globalConfig);
        autoGenerator.setDataSource(dataSource);
        autoGenerator.setPackageInfo(packageConfig);
        autoGenerator.setStrategy(strategy);
        autoGenerator.execute();
    }
}
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
8月前
|
SQL Java 数据库连接
Java系列技术之Mybatis
MyBatis 是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC代码和手动设置参数以及获取结果集,它可以使用简单的XML或注解来配置和映射SQL信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
78 0
|
3月前
|
Java 数据库连接 Maven
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和MyBatis Generator,使用逆向工程来自动生成Java代码,包括实体类、Mapper文件和Example文件,以提高开发效率。
161 2
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
|
7月前
|
SQL Java 关系型数据库
Java中的ORM框架——myBatis
Java中的ORM框架——myBatis
|
SQL Java 数据库连接
Java:MyBatis讲解
MyBatis是一个开源的Java持久化框架,它提供了一个简化数据库访问的方法。MyBatis的主要目标是减少编写SQL代码的工作量,并提供了将数据库操作与Java对象的映射功能。
61 1
Java:MyBatis讲解
|
8月前
|
XML Java 数据库连接
Java一分钟之MyBatis:持久层框架基础
【5月更文挑战第15天】MyBatis是Java的轻量级持久层框架,它分离SQL和Java代码,提供灵活的数据库操作。常见问题包括:XML配置文件未加载、忘记关闭SqlSession、接口方法与XML映射不一致、占位符使用错误、未配置ResultMap和事务管理不当。解决这些问题的关键在于正确配置映射文件、管理SqlSession、避免SQL注入、定义ResultMap以及确保事务边界。遵循最佳实践可优化MyBatis使用体验。
66 2
Java一分钟之MyBatis:持久层框架基础
|
SQL Java 数据库连接
java:MyBatis动态SQL
动态SQL是一种在运行时构建和执行SQL查询语句的技术。它允许开发者根据不同的条件和参数来动态地生成SQL语句,以满足不同的业务需求
106 3
|
SQL XML Java
Java:MyBatis实现增删改查
MyBatis是一款开源的Java持久层框架,可以将SQL语句和Java程序代码进行分离,开发者无需直接编写JDBC代码,通过XML或注解的方式配置SQL语句和映射关系,简化了数据库操作的过程。MyBatis具有良好的扩展性和灵活性,提供了多种插件和自定义类型转换器等功能,广泛应用于企业级开发中。
118 0
|
Java 关系型数据库 数据库连接
Java——mybatis逆向工程生成实体类
Java——mybatis逆向工程生成实体类
|
存储 SQL Java
90天Java(3)---mybatis与mybatis plus-2
此博文是学习吕一明老师《90天Java进阶训练营二期》的笔记总结,接上一篇博文。我们接着来介绍和分析MyBatis 本次分析中涉及到的代码和数据库表均放在GitHub上,地址:源码地址
248 0
90天Java(3)---mybatis与mybatis plus-2
|
SQL XML 存储
90天Java(3)---mybatis与mybatis plus-1
此博文是学习吕一明老师《90天Java进阶训练营二期》的笔记总结,这篇博文我们将主要介绍MyBatis和MyBatis plus的使用以及相关源码。 本次分析中涉及到的代码和数据库表均放在GitHub上,地址:源码地址
187 0
90天Java(3)---mybatis与mybatis plus-1