Java:mybatis-plus-generator-ui 基于Mybatis-Plus的代码自助生成器

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: Java:mybatis-plus-generator-ui 基于Mybatis-Plus的代码自助生成器

引用官方文档上的简介:


提供交互式的Web UI用于生成兼容mybatis-plus框架的相关功能代码,包括Entity,Mapper,Mapper.xml,Service,Controller等 ,可以自定义模板以及各类输出参数,也可通过SQL查询语句直接生成代码。


文档


github: https://github.com/davidfantasy/mybatis-plus-generator-ui

gitee: https://gitee.com/davidfantasy/mybatis-plus-generator-ui

1、将mybatis-plus-generator-ui 引入项目

项目结构


$ tree -I target

.

├── pom.xml

└── src

   ├── main

   │   ├── java

   │   └── resources

   └── test

       └── java

           └── com

               └── example

                   └── GeneratorMain.java


pom.xml


<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0"

        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

   <modelVersion>4.0.0</modelVersion>


   <groupId>com.example</groupId>

   <artifactId>generator-demo</artifactId>

   <version>1.0-SNAPSHOT</version>


   <dependencies>

       <dependency>

           <groupId>com.github.davidfantasy</groupId>

           <artifactId>mybatis-plus-generator-ui</artifactId>

           <version>1.4.5</version>

           <scope>test</scope>

       </dependency>


       <dependency>

           <groupId>mysql</groupId>

           <artifactId>mysql-connector-java</artifactId>

           <version>8.0.31</version>

       </dependency>

   </dependencies>


</project>


GeneratorMain.java


package com.example;


import com.github.davidfantasy.mybatisplus.generatorui.GeneratorConfig;

import com.github.davidfantasy.mybatisplus.generatorui.MybatisPlusToolsApplication;

import com.github.davidfantasy.mybatisplus.generatorui.mbp.NameConverter;


/**

* 启动类

*/

public class GeneratorMain {


   public static void main(String[] args) {

       GeneratorConfig config = GeneratorConfig.builder()

               .driverClassName("com.mysql.cj.jdbc.Driver")

               .jdbcUrl("jdbc:mysql://127.0.0.1:3306/data")

               .userName("root")

               .password("123456")

               .basePackage("com.example")

               .nameConverter(new NameConverter() {

                   /**

                    * 自定义Service类文件的名称规则

                    */

                   @Override

                   public String serviceNameConvert(String tableName) {

                       return this.entityNameConvert(tableName) + "Service";

                   }

               })

               .port(8068)

               .build();


       MybatisPlusToolsApplication.run(config);

   }

}


启动UI,打开浏览器地址:http://localhost:8068


2、通过UI界面操作代码生成

用户表tb_user的建表语句


CREATE TABLE `tb_user` (

 `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id',

 `name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户名',

 `age` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '年龄',

 PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='用户表';


1、选择要生成的数据表


b6fcaaed3f8b217ee1a68e57c81c109c_076d9de6e09148ce8b2f90184d44143e.png

2、选择需要生成的文件和控制器方法

13de08a428e4eedf883ff6db3ea17a8c_41007eab6ab94cb697eed5786ac80207.png



生成的代码文件


$ tree -I target

.

├── pom.xml

└── src

   ├── main

   │   ├── java

   │   │   └── com

   │   │       └── example

   │   │           ├── controller

   │   │           │   └── UserController.java

   │   │           ├── entity

   │   │           │   └── User.java

   │   │           ├── mapper

   │   │           │   └── UserMapper.java

   │   │           └── service

   │   │               ├── UserService.java

   │   │               └── impl

   │   │                   └── UserServiceImpl.java

   │   └── resources

   │       └── mapper

   │           └── UserMapper.xml

   └── test

       └── java

           └── com

               └── example

                   └── GeneratorMain.java


以下是生成的实体类


package com.example.entity;

import com.baomidou.mybatisplus.annotation.TableName;

import com.baomidou.mybatisplus.annotation.IdType;

import com.baomidou.mybatisplus.annotation.TableId;

import java.io.Serializable;

/**

* <p>

* 用户表

* </p>

*

* @author mouday

* @since 2023-05-25

*/

@TableName("tb_user")

public class User implements Serializable {


   private static final long serialVersionUID = 1L;


   /**

    * 主键id

    */

   @TableId(value = "id", type = IdType.AUTO)

   private Integer id;


   /**

    * 用户名

    */

   private String name;


   /**

    * 年龄

    */

   private Integer age;


   public Integer getId() {

       return id;

   }


   public void setId(Integer id) {

       this.id = id;

   }


   public String getName() {

       return name;

   }


   public void setName(String name) {

       this.name = name;

   }


   public Integer getAge() {

       return age;

   }


   public void setAge(Integer age) {

       this.age = age;

   }


   @Override

   public String toString() {

       return "User{" +

       ", id=" + id +

       ", name=" + name +

       ", age=" + age +

       "}";

   }

}


参考

MyBatis-Plus 可视化代码生成器来啦,让你的开发效率大大提速!!

————————————————

版权声明:本文为CSDN博主「彭世瑜」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/mouday/article/details/130861509

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
10天前
|
IDE Java 关系型数据库
Java 初学者学习路线(含代码示例)
本教程为Java初学者设计,涵盖基础语法、面向对象、集合、异常处理、文件操作、多线程、JDBC、Servlet及MyBatis等内容,每阶段配核心代码示例,强调动手实践,助你循序渐进掌握Java编程。
96 3
|
13天前
|
安全 Java 应用服务中间件
Spring Boot + Java 21:内存减少 60%,启动速度提高 30% — 零代码
通过调整三个JVM和Spring Boot配置开关,无需重写代码即可显著优化Java应用性能:内存减少60%,启动速度提升30%。适用于所有在JVM上运行API的生产团队,低成本实现高效能。
97 3
|
13天前
|
Java
怎么用Java 代码示例来展示继承的实现
本文通过Java代码示例展示继承机制:Animal为父类,Cat和Dog继承其属性与方法,并实现构造函数调用、方法重写与特有功能扩展,体现代码复用与多态特性。
54 4
|
14天前
|
Java
java入门代码示例
本文介绍Java入门基础,包含Hello World、变量类型、条件判断、循环及方法定义等核心语法示例,帮助初学者快速掌握Java编程基本结构与逻辑。
205 0
|
28天前
|
Java API 开发工具
【Azure Developer】Java代码实现获取Azure 资源的指标数据却报错 "invalid time interval input"
在使用 Java 调用虚拟机 API 获取指标数据时,因本地时区设置非 UTC,导致时间格式解析错误。解决方法是在代码中手动指定时区为 UTC,使用 `ZoneOffset.ofHours(0)` 并结合 `withOffsetSameInstant` 方法进行时区转换,从而避免因时区差异引发的时间格式问题。
139 3
|
1月前
|
缓存 Java 开发者
Java 开发者必看!ArrayList 和 LinkedList 的性能厮杀:选错一次,代码慢成蜗牛
本文深入解析了 Java 中 ArrayList 和 LinkedList 的性能差异,揭示了它们在不同操作下的表现。通过对比随机访问、插入、删除等操作的效率,指出 ArrayList 在多数场景下更高效,而 LinkedList 仅在特定情况下表现优异。文章强调选择合适容器对程序性能的重要性,并提供了实用的选择法则。
108 3
|
2月前
|
人工智能 监控 安全
智慧工地解决方案,java智慧工地程序代码
智慧工地系统融合物联网、AI、大数据等技术,实现对施工现场“人、机、料、法、环”的全面智能监控与管理,提升安全、效率与决策水平。
|
2月前
|
算法 IDE Java
Java 项目实战之实际代码实现与测试调试全过程详解
本文详细讲解了Java项目的实战开发流程,涵盖项目创建、代码实现(如计算器与汉诺塔问题)、单元测试(使用JUnit)及调试技巧(如断点调试与异常排查),帮助开发者掌握从编码到测试调试的完整技能,提升Java开发实战能力。
272 0
|
3月前
|
安全 Java 测试技术
Java 项目实战中现代技术栈下代码实现与测试调试的完整流程
本文介绍基于Java 17和Spring技术栈的现代化项目开发实践。项目采用Gradle构建工具,实现模块化DDD分层架构,结合Spring WebFlux开发响应式API,并应用Record、Sealed Class等新特性。测试策略涵盖JUnit单元测试和Testcontainers集成测试,通过JFR和OpenTelemetry实现性能监控。部署阶段采用Docker容器化和Kubernetes编排,同时展示异步处理和反应式编程的性能优化。整套方案体现了现代Java开发的最佳实践,包括代码实现、测试调试
146 0