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

news2024/11/24 20:14:05

引用官方文档上的简介:

提供交互式的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、选择要生成的数据表
在这里插入图片描述

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

在这里插入图片描述

生成的代码文件

$ 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 可视化代码生成器来啦,让你的开发效率大大提速!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/566747.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Day51【动态规划】309.最佳买卖股票时机含冷冻期、714.买卖股票的最佳时机含手续费

309.最佳买卖股票时机含冷冻期 力扣题目链接/文章讲解 视频讲解 记住昨天的回顾总结提到的&#xff1a;应该灵活利用 dp 数组的下标描述所有状态 动态规划五部曲 1、确定 dp 数组下标及值含义 dp[i][j]&#xff0c;第 i 天状态为 j&#xff0c;所剩的最多现金为 dp[i…

2023年中国AI芯片行业市场现状及未来发展趋势预测

2023年AI芯片报告汇总了60家国产AI芯片厂商&#xff0c;大致按如下应用类别进行归类&#xff1a;云端加速、智能驾驶、智能安防、智能家居、智能穿戴、其它AIoT。对于每一家筛选的公司&#xff0c;我们从主要产品、核心技术、应用场景、市场竞争力、发展里程碑等方面对公司进行…

vue做一个一直自增加载且永远不会超过百分之九十九的数值 制造正在加载假象

我们在src跟目录下创建一个utils目录下面创建一个continuousLoading.js 参考代码如下 let value 0;export default function(callback) {const timer setInterval(() > {if (callback&&(value || value 0)&&value < 99) {value 1;callback(value);}…

一篇文章搞定《Android事件分发》

一篇文章搞定《Android事件分发》 什么是事件分发MotionEvent事件事件如何从屏幕到APPInputManagerServiceWindowManagerServiceWindow小结 事件如何从APP到达对应页面第一步&#xff1a;分类第二步&#xff1a;送去Activity后续的传递小结&#xff1a; 页面的事件分发整个流程…

道岔外锁闭装置介绍

简述 道岔外锁闭装置是一种能可靠地锁闭尖轨和基本轨的器械。它能有效地克服尖轨在密贴时的转换阻力&#xff0c;即使连接杆折断&#xff0c;外锁闭装置仍在起着锁闭作用。外锁闭能够隔离列车通过时对转换设备的振动和冲击&#xff0c;提高转换设备寿命和可靠性。 产品分类 …

Kubernetes Dashboard + Ingress 及其 yaml 文件分析

概述 记录部署Dashboard Ingress的具体过程及其 yaml 文件分析 Dashboard Yaml # Copyright 2017 The Kubernetes Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the Li…

【C++】类和对象的应用案例 2 - 点和圆的关系

目录 1、缘起 2、分析 3、示例代码 4、代码优化 4.1、point.h 4.2、point.c 4.3、circle.h 4.4、circle.c 4.4、main.c 5、总结 1、缘起 在 C 中&#xff0c;类和对象可以用来构建有趣的应用程序。一个生动形象且吸引人的案例是点和圆的关系。通过创建一个 Po…

C++内存管理 (new、delete)知识点+完整思维导图+实操图+深入细节通俗易懂建议收藏

绪论 我成功是因为我有决心&#xff0c;从不踌躇。——拿破仑 本章是关于c内存管理的文章&#xff0c;字数不多&#xff0c;内容简单&#xff0c;希望对你有所帮助&#xff01;&#xff01; 话不多说安全带系好&#xff0c;发车啦&#xff08;建议电脑观看&#xff09;。 附&a…

【redis基础】redis的十大数据类型

前言 接受虚竹哥的建议&#xff0c;后续将发布redis的系列文章 本篇文章针对有关Redis7数据类型的的使用率较高的操作进行讲解&#xff0c;有关Redis7中数据类型的全部操作请查阅&#xff1a;Commands | Redis 上一篇文章&#xff1a;初识redis【redis的安装使用与卸载】_努…

Java --- 云尚办公之Activiti7

目录 一、工作流 1.1、什么是工作流 1.2、工作流引擎 1.3、常见工作流引擎 二、 Activiti7概述 2.1、Activiti介绍 2.2、建模语言BPMN 2.3、 Activiti使用流程 三、 Activiti使用 3.1、部署流程工具 3.2、画出流程图并放入项目中 3.3、流程定义部署 3.4、启动流程…

要闻 | 自然资源部实景三维建设与城市精细化治理工程技术创新中心揭牌仪式暨第二季度工作推进会顺利召开

2023年5月16日上午&#xff0c;全国首个实景三维领域部级工程技术创新中心——自然资源部实景三维建设与城市精细化治理工程技术创新中心&#xff08;以下称“中心”&#xff09;在武汉大势智慧科技有限公司举行了揭牌仪式&#xff0c;并在大势会议室顺利召开了中心第二季度工作…

19-02 基于业务量级的架构技术选型演进

从零开始——单服务应用 单体应用技术选型 &#xff08;GitHub、Gitee…&#xff09;搜索是否有线程的产品用最熟悉的技术&#xff0c;最快的速度上线如果有经费&#xff1a;考虑商业化解决方案 个人小程序怎么做技术选型的 搜索是否有快速搭建下程序的软件技术选型 后端技…

PX4从放弃到精通(二十五):EKF2

文章目录 前言一、主程序二、update()二、predictState()三、controlFusionModes()四、controlGpsFusion五、fuseGpsVelPos()六、fuseHorizontalVelocity()七、fuseVelPosHeight()八、calculateOutputStates()前言 PX4 1.13.2 PX4 ekf的传感器数据放在FIFO的环形缓冲区中,每…

智能综合交通(水运、航空)主题汇总(附下载链接)

根据我国现行的交通运输体制&#xff0c;公路以外的交通运输称为综合交通运输形式&#xff0c;包括铁路、航空和水运等。本部分包括航空和水运运输&#xff08;铁路部分另外单独列出&#xff09;。 智慧水运、航道、港口 &#xff08;至2023年05月23日&#xff09; 湛江市综合交…

容器编排器们的自我介绍

哈喽大家好&#xff0c;我是咸鱼 咸鱼在《一文带你了解容器技术的前世今生》有介绍过容器技术的由来以及Docker项目的发展 我们知道&#xff0c;Docker 及其他容器技术能够极大地简化应用程序的部署&#xff0c;做到了”开箱即用“ 俗话说&#xff1a;”凡是具有两面性“。容…

OSPF 5种报文、状态机、邻居建立的过程

OSPF 5种报文、状态机、邻居建立的过程 一、OSPF的5种报文二、OSPF状态机三、OSPF建立的过程 一、OSPF的5种报文 Hello 用于发现邻居&#xff0c;维持邻居的状态 DD DD报文有确定设备主从&#xff0c;同步DD序列号 包含着LSA的头部信息&#xff0c;有同步LSDB数据库的作用 LSA…

云原生|Kubernetes Operator测试实例

目录 一、主要代码介绍 &#xff08;一&#xff09;变量定义&#xff1a; &#xff08;二&#xff09;测试程序入口 &#xff08;三&#xff09;before函数 &#xff08;四&#xff09;after函数 二、实际测试 &#xff08;一&#xff09;块划分 &#xff08;二&#x…

【数据分享】1997-2017 年中国市县级能耗与能效数据集

能源既关乎国家经济命脉&#xff0c;又影响人民生活水平&#xff01;能源相关的研究是各个行业的热门研究话题&#xff0c;能源相关的数据也是经常使用的数据&#xff01; 我们发现在figshare平台上分享有1997-2017 年我国市县级的能耗与能效数据&#xff0c;数据格式为Excel&…

CMake常用命令总结与练习

CMake常用命令总结 前言cmake_minimum_required (VERSION XX):CMake最低版本project (demo)&#xff1a;CMake工程名add_executable(main main.c):生成可执行文件aux_source_directory(dir var)&#xff1a;指定源文件放入变量set(val src):指定源文件放入变量include_director…

js闭包的简单应用

闭包的概念&#xff1a;有权访问其他函数的内部变量的函数 闭包是作用域运用的特殊场景。 注&#xff1a;js中自由变量的查找是在函数定义的地方向上级作用域查找&#xff0c;不是在执行的地方。 闭包的使用场景概况为两种&#xff0c;一种是函数作为参数被传递&#xff0c;一种…