Java知识点整理 14 — MyBatisX代码生成器

news2024/11/16 8:44:30

在后端开发过程中大多数的工作都是在重复编写各种CRUD(增删改查)代码,费时费力。

所以要灵活运用各类现成的代码生成器,协助我们自动生成常用的增删改查代码,而无需自己重复编写,从而大幅提升开发效率。

在 Java 后端开发中,主流技术是 Spring Boot + Spring MVC + MyBatis 框架,使用这些技术来开发项目时,通常需要编写数据访问层(DAO / Mapper)和数据库表的XML映射关系、实体类、Service 业务逻辑代码以及 Controller 接口代码。

MyBatisX 就是一款实用的免费代码生成插件,基于IDEA开发工具。 

一. MyBatisX 使用指南

1. 安装 MyBatisX 插件

在IntelliJ IDEA 开发工具中打开项目工程,进入 Settings 设置并搜索 MyBatisX 插件安装:

2. 配置数据库连接

MyBatisX 插件的核心功能时根据数据库表的结构来生成对应的实体类、数据访问层、Service业务逻辑代码等,因此在使用前需要连接数据库。

首先在 Database 中创建一个 MySQL 数据源配置:

然后根据自己的数据库信息填写配置,并测试能否连接成功:

 连接成功后,就可以在 IDEA 中管理数据库了:

3. 使用 MyBatisX 生成代码

右键要生成代码的数据表,进入 MyBatisX 生成器:

然后进入配置页面,可以根据需求来自定义代码生成规则:

base package 为生成代码的包名和位置,此处建议不要和已有的项目包名重复,先将代码生成到一个完全不影响业务的位置,确认生成的代码没问题之后,再进行迁移,不会影响原有业务。

下一步填写更多配置,选择生成代码的模板(一般是 MyBatis-Plus 模板),以及自定义实体类的生成规则(通常使用 Lombok):

配置完毕后点击生成即可,可以再包目录中看到生成的代码:

4. 定制修改

上述方法已经能够完成基础增删改查代码的生成,但通常我们还需要根据需求进行二次修改。

如把主键 ID 的生成规则从自动递增改为雪花算法(生成一个的 64 位比特位的 long 类型的唯一 id)生成,防止数据 id 连续被别人爬取:

之后就可以使用现成的代码来操作数据库了。  

在基于AIGC的BI系统以及API Hunter开放平台项目中均使用到了 MyBatisX 插件来快速生成后端基础CRUD代码,大幅提升了项目开发效率。

二. 其它代码生成器

1. AutoGenerator

AuoGenerator 是 MyBatis-Plus 提供的代码生成器,快速生成实体类、Mapper、Mapper XML、Service、Controller 等各模块代码。

使用时首先需要手动添加相关依赖:

代码生成器依赖

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.5.0</version>
</dependency>

模板引擎依赖

// 默认 Velocity
<dependency>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity-engine-core</artifactId>
    <version>最新版本</version>
</dependency>

然后编写配置:提供了大量自定义参数供用户选择,能满足绝大部分人的使用需求。

配置 GlobalConfig

GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setOutputDir(System.getProperty("user.dir") + "/src/main/java");
globalConfig.setAuthor("jobob");
globalConfig.setOpen(false);

配置 DataSourceConfig

DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/ant?useUnicode=true&useSSL=false&characterEncoding=utf8");
dataSourceConfig.setDriverName("com.mysql.jdbc.Driver");
dataSourceConfig.setUsername("root");
dataSourceConfig.setPassword("password");

更多配置请查看:AutoGenerator 代码生成器配置

2. SQL Father

SQL Father 是能直接在浏览器使用的代码生成器,由鱼皮大佬开发并开源。

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

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

相关文章

【系统架构设计师】六、信息系统基础知识(电子政务|企业信息化|电子商务|信息化战略体系)

目录 一、电子政务EG 1.1 电子政务的内容 1.2 电子政务的主要特征 二、企业信息化EI 2.1 企业信息化实现 2.2 企业信息化方法 三、电子商务EC 四、信息化战略体系 五、客户关系CRM 5.1 CRM的功能 5.2 CRM解决方案具备的要素 5.3 CRM的实现过程 六、供应链管理SCM 七…

TEMU半托管模式引领跨境电商新风尚

TEMU半托管模式作为2024年的热门话题&#xff0c;正吸引着越来越多卖家的目光。继全托管模式取得巨大成功之后&#xff0c;半托管模式的推出无疑为跨境电商行业注入了新的活力。 在选品方向上&#xff0c;TEMU半托管模式强调商品的聚焦与精选。卖家在选择上架商品时&#xff0c…

404 Not Found(nginx)

#vue-router history 配置location / {add_header Access-Control-Allow-Origin *;add_header Access-Control-Allow-Headers *;add_header Cross-Origin-Embedder-Policy require-corp;add_header Cross-Origin-Opener-Policy same-origin;try_files $uri $uri/ router;index …

鸿蒙 HarmonyOS NEXT星河版APP应用开发-阶段一

一、鸿蒙开发环境搭建 DevEco Studio安装 下载 访问官网&#xff1a;https://developer.huawei.com/consumer/cn/deveco-studio/选择操作系统版本后并注册登录华为账号既可下载安装包 安装 建议&#xff1a;软件和依赖安装目录不要使用中文字符软件安装包下载完成后&#xff0…

Java网络编程(JavaWeb的基础)

Java网络编程&#xff08;JavaWeb的基础&#xff09; 文章目录 Java网络编程&#xff08;JavaWeb的基础&#xff09;前言一、网络编程概述1.1 软件架构&网络基础1.2 网络通信要素:IP/端口/通信协议1.3 传输层协议:tcp/udp 二、网络编程API2.1 InetAddress类2.2 Socket类&am…

收银系统开源源码-千呼新零售2.0【打折促销】

千呼新零售2.0系统是零售行业连锁店一体化收银系统&#xff0c;包括线下收银线上商城连锁店管理ERP管理商品管理供应商管理会员营销等功能为一体&#xff0c;线上线下数据全部打通。 适用于商超、便利店、水果、生鲜、母婴、服装、零食、百货、宠物等连锁店使用。 详细介绍请…

操作系统——考研笔记(一)操作系统概述

目录 操作系统引言一、 操作系统概述1.1 操作系统的功能和目标1.2 操作系统的特征1.2.1 并发1.2.2 共享1.2.3 并发和共享的关系1.2.4 虚拟1.2.5 异步1.2.6 知识回顾与重要考点 1.3 操作系统的发展与分类1.3.1 手工操作阶段1.3.2 批处理阶段——单道批处理系统1.3.3 批处理阶段—…

2024年最佳软件测试工具40强清单(非常详细)零基础入门到精通,收藏这一篇就够了

什么是测试工具 软件测试工具是指那些支持从计划、需求收集、构建创建、测试执行、缺陷记录到测试分析等各种测试活动的产品。这些工具主要用于检测软件的稳定性、彻底性以及其他性能参数。 市场上有大量的软件测试工具&#xff0c;众多选择使得难以确定最适合你项目的测试工…

项目开发 TCP-Socket连接功能实现(Android端)

前段时间在公司做项目的时候遇到了一个功能需要使用TCP-Socket连接硬件设备进行通信&#xff0c;查了很多资料也只是关于HTTP-Socket相关的&#xff0c;没法满足项目的要求&#xff0c;后来查到一个相关的插件&#xff0c;现在有时间和大家分享一下。 项目简单介绍&#xff1a…

python AI全栈工程师

python AI全栈工程师 前端&#xff1a;Streamlit Streamlit是一个开源的Python库&#xff0c;专为数据科学家和机器学习工程师设计&#xff0c;用于快速构建交互式用户界面。Streamlit功能强大、易于使用&#xff0c;特别适合数据科学家和机器学习工程师快速构建和部署交互式数…

状态机模型——AcWing 1057. 股票买卖 IV

状态机模型 定义 动态规划中的算法状态机模型是一种用于描述算法执行过程中状态变化的模型。它由状态、事件、动作和转移组成。状态表示算法在某个时刻所处的情况&#xff0c;事件是导致状态发生变化的原因&#xff0c;动作是在状态变化时执行的操作&#xff0c;转移则定义了…

1.2 离散LTI系统的时域分析

目录 离散系统的定义 离散LTI系统的时域描述h[k] 离散系统的分类 线性与非线性系统 时变与非时变系统 因果与非因果系统 稳定与不稳定系统 例题 LTI——Linear and Time-invariant System 线性时不变系统 离散系统的定义 离散LTI系统的时域描述h[k] 离散系统的…

关于“刘亦菲为什么无人敢娶”的问题❗❗❗

关于“刘亦菲为什么无人敢娶”的问题&#xff0c; 实际上涉及到多个方面的因素&#xff0c; 以下是对这些因素的详细分析&#xff1a;1.事业心重&#xff1a;刘亦菲作为华语影视圈的知名女星&#xff0c;她的演艺事业非常成功&#xff0c; 这也意味着她将大量的时间和精力投…

深圳网页设计收费情况

深圳是中国最具活力和发展速度最快的城市之一&#xff0c;随着经济的快速发展&#xff0c;各种行业都飞速发展&#xff0c;尤其是互联网行业。网页设计是互联网行业的重要组成部分&#xff0c;深圳的网页设计师数量也是非常庞大的。那么&#xff0c;深圳网页设计师的收费情况是…

HarmonyOS ArkUi Tabs+TabContent+List实现tab吸顶功能

Demo效果 Entry Component struct StickyNestedScroll {State message: string Hello WorldState arr: number[] []scroller new Scroller()StyleslistCard() {.backgroundColor(Color.White).height(72).width("100%").borderRadius(12)}build() {Scroll(this.sc…

Java 项目的构建工具 Maven

Maven 一、Maven 简介二、Maven 安装配置1、Maven 下载安装2、Maven 配置 三、IDEA 集成 Maven四、Maven 依赖管理1、依赖配置2、依赖传递3、依赖范围4、生命周期 五、Maven 高级特性1、分模块设计与开发2、Maven 继承3、Maven 版本管理4、Maven 聚合5、私服 一、Maven 简介 M…

[Centos7] 部署Zabbix5.0

目录 0 卸载 Zabbix1 准备工作1.1 关闭防火墙1.2 关闭SELinux1.3 重启服务器1.4 安装MySQL 2 配置 Zabbix yum 源2.1 安装zabbix的软件仓库配置包2.2 安装 Software Collections 仓库2.3 修改 Zabbix 仓库配置文件 3 安装 Zabbix3.1 遇到报错Requires: libmysqlclient.so.183.2…

Verilog进行结构描述(二):Verilog基本单元(primitives)

目录 1.Verilog基本单元2.基本单元的引脚 (pin)的可扩展性3.带条件的基本单元4.基本单元实例化 微信公众号获取更多FPGA相关源码&#xff1a; 1.Verilog基本单元 Verilog基本单元提供基本的逻辑功能&#xff0c;也就是说这些逻辑功能是预定义的&#xff0c;用户不需要再定义…

爬虫-Python基础

一、Python环境的安装 1. 下载Python 访问Python官网: Welcome to Python.org点击downloads按钮&#xff0c;在下拉框中选择系统类型(windows/Mac OS/Linux等)选择下载最新版本的Python 2. 安装Python 双击下载好的Python安装包勾选左下角 Add Python 3.7 to PATH 选项&…

超声波清洗机对眼镜有伤害吗?四大顶尖优品公认力作!

超声波清洗机利用超声波在液体中产生的微小气泡爆炸&#xff0c;产生强大的冲击力&#xff0c;能够深入物品的各个角落&#xff0c;有效去除油污、灰尘和细菌。与传统的手工清洗相比&#xff0c;不仅清洁效率高&#xff0c;而且能够保护眼镜不受损伤&#xff0c;特别适合清洗眼…