发布时间:2026/7/9 7:01:13
MyBatis Generator:根据数据库表生成 MyBatis 的实体类、Mapper 接口和 XML 映射文件
1. 什么是 MyBatis GeneratorMyBatis Generator简称 MBG是 MyBatis 官方提供的一款代码生成工具。它能够根据数据库表结构自动生成对应的实体类POJO、Mapper 接口以及 XML 映射文件。这极大地减少了开发者在搭建数据访问层时的重复性工作提升了开发效率并保证了代码风格的一致性。2. 核心功能与生成内容MBG 主要生成以下三类核心文件实体类 (Model/Pojo)与数据库表字段一一对应的 Java 类通常包含私有字段、Getter/Setter 方法以及 toString() 方法。Mapper 接口 (Mapper Interface)定义数据操作方法的 Java 接口如selectByPrimaryKey,insert,updateByPrimaryKey等。XML 映射文件 (Mapper XML)实现 Mapper 接口中定义的方法所对应的 SQL 语句映射。此外它还可以根据配置生成 Example 类用于构建动态查询条件和 SQL Provider 类基于注解的动态 SQL。3. 快速开始使用 Maven 插件最常用的方式是通过 Maven 插件来运行 MBG。3.1 添加插件配置在项目的pom.xml文件中添加如下插件配置build plugins plugin groupIdorg.mybatis.generator/groupId artifactIdmybatis-generator-maven-plugin/artifactId version1.4.2/version configuration !-- 指定配置文件路径 -- configurationFilesrc/main/resources/generatorConfig.xml/configurationFile overwritetrue/overwrite verbosetrue/verbose /configuration dependencies !-- 数据库驱动依赖 -- dependency groupIdmysql/groupId artifactIdmysql-connector-java/artifactId version8.0.33/version /dependency /dependencies /plugin /plugins /build3.2 创建配置文件在src/main/resources目录下创建generatorConfig.xml文件?xml version1.0 encodingUTF-8? !DOCTYPE generatorConfiguration PUBLIC -//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd generatorConfiguration !-- 数据库连接信息 -- context idMySQLTables targetRuntimeMyBatis3 jdbcConnection driverClasscom.mysql.cj.jdbc.Driver connectionURLjdbc:mysql://localhost:3306/your_database userIdyour_username passwordyour_password /jdbcConnection javaModelGenerator targetPackagecom.example.model targetProjectsrc/main/java property nameenableSubPackages valuetrue/ property nametrimStrings valuetrue/ /javaModelGenerator sqlMapGenerator targetPackagecom.example.mapper targetProjectsrc/main/resources property nameenableSubPackages valuetrue/ /sqlMapGenerator javaClientGenerator typeXMLMAPPER targetPackagecom.example.mapper targetProjectsrc/main/java property nameenableSubPackages valuetrue/ /javaClientGenerator !-- 指定要生成的表可以使用通配符 % -- table tableNameuser domainObjectNameUser !-- 可选的列级配置例如忽略某些字段 -- !-- columnOverride columncreated_time javaTypejava.time.LocalDateTime/ -- /table table tableNameorder domainObjectNameOrder/ /context /generatorConfiguration3.3 执行生成命令在项目根目录下执行 Maven 命令mvn mybatis-generator:generate执行成功后将在指定的包路径下生成对应的 Java 文件和 XML 文件。4. 配置文件详解4.1 核心配置节点context定义生成上下文可配置多个。最重要的属性是targetRuntime决定了生成代码的风格如 MyBatis3, MyBatis3Simple。jdbcConnection配置数据库连接用于读取表结构元数据。javaModelGenerator配置实体类的生成规则如包名、项目路径、是否启用子包等。sqlMapGenerator配置 XML 映射文件的生成规则。javaClientGenerator配置 Mapper 接口的生成规则和类型如 XMLMAPPER, ANNOTATEDMAPPER。table指定要生成代码的具体表。可以配置多个支持通配符匹配表名。4.2 常用 table 子配置generatedKey配置自增主键。columnOverride覆盖特定列的 Java 类型、JDBC 类型或处理器。ignoreColumn忽略某些字段不生成到实体类中。property表级别的属性如是否生成 Example 类 (enableCountByExamplefalse)。5. 高级特性与自定义5.1 使用插件 (Plugin)MBG 支持插件机制可以干预代码生成过程。例如官方提供的LombokPlugin可以为实体类生成 Lombok 注解从而省略 Getter/Setter 方法。context ... plugin typeorg.mybatis.generator.plugins.LombokPlugin property namedata valuetrue/ !-- 生成 Data 注解 -- /plugin ... /context5.2 自定义注释生成器通过实现CommentGenerator接口可以自定义实体类字段、方法以及 XML 文件中的注释内容。5.3 生成 Example 类当targetRuntime设置为MyBatis3时默认会为每个表生成一个 Example 类用于构建复杂的动态查询条件如andNameLike。如果不需要可以在table中配置enableCountByExamplefalse enableUpdateByExamplefalse enableDeleteByExamplefalse enableSelectByExamplefalse来禁用。6. 注意事项与最佳实践配置文件版本管理将generatorConfig.xml纳入版本控制便于团队共享和复现。生成文件覆盖配置overwritetrue/overwrite时要谨慎避免覆盖手动修改过的代码。建议将生成的代码与业务代码分离。数据库驱动兼容性确保插件依赖的数据库驱动版本与项目运行时使用的版本一致。增量生成MBG 不会删除已生成的文件。当表结构变更如删除字段时需要手动清理旧的实体类字段或重新生成全部文件。结合 Lombok 使用强烈推荐使用 Lombok 插件可以极大简化实体类使代码更简洁。7. 总结MyBatis Generator 是 MyBatis 生态中提升开发效率的利器。通过简单的 XML 配置即可自动化生成数据访问层的基础代码让开发者更专注于业务逻辑的实现。掌握其配置方法和高级特性能够根据项目需求进行灵活定制是 Java 后端开发者必备的技能之一。

相关新闻

企业本地AI知识库的技术选型:6个关键能力对比分析
2026/7/9 7:01:13

企业本地AI知识库的技术选型:6个关键能力对比分析

在企业知识管理系统的技术选型中,"传统网盘"和"AI知识库"经常被混为一谈。但两者在架构设计、数据模型、检索引擎、安全体系上存在根本性差异。 本文从技术实现角度,对比分析企业本地AI知识库与传统网盘在6个关键维度上的差异&#…

阅读更多
MOSS-TTS-Nano-100M-ONNX 本地整合包:轻量级本地AI语音合成,解压即可体验
2026/7/9 7:01:13

MOSS-TTS-Nano-100M-ONNX 本地整合包:轻量级本地AI语音合成,解压即可体验

随着 AI 语音技术的发展,文本转语音(TTS)已经逐渐应用到配音、智能助手、教育、有声内容等多个领域。 不过,对于普通用户来说,体验一款 AI 语音模型往往需要安装 Python、配置依赖、下载模型文件,过程中容…

阅读更多
FT阶段UFS烧录设备的选型标准:速度优先还是稳定性优先?
2026/7/9 6:01:13

FT阶段UFS烧录设备的选型标准:速度优先还是稳定性优先?

前言 在 UFS 4.1 时代,量产车间和测试厂常面临一个棘手的现象:同一批次的高速闪存芯片,在不同的自动烧录主机或测试板上,其良率与写入吞吐量表现出显著的物理性差异。随着 MIPI M-PHY 5.0 HS-G5(Gear 5)单通…

阅读更多
告别模拟器:APK安装器让安卓应用在Windows上原生运行
2026/7/9 10:01:13

告别模拟器:APK安装器让安卓应用在Windows上原生运行

告别模拟器:APK安装器让安卓应用在Windows上原生运行 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否厌倦了传统安卓模拟器的臃肿和卡顿?…

阅读更多
var、let、const
2026/7/9 10:01:13

var、let、const

注:给自己写的复习和面试的笔记,简要记录可能不完善,复习够用一、var的核心特性1>、作用域:函数作用域或全局作用域痛点:缺乏块级作用域,if块内的变量会泄露到外部,for循环中的变量会泄露到外…

阅读更多
中教睿海是正规机构吗?军队文职培训资质与官方背书全解析
2026/7/9 10:01:13

中教睿海是正规机构吗?军队文职培训资质与官方背书全解析

近年来,军队文职考试持续升温,越来越多的考生将目光投向这一稳定且有发展前景的职业方向。然而,伴随报考热度攀升的,是培训市场的鱼龙混杂。教育部等部委于2025年专门发布《关于开展军队文职人员考试培训专项整治的通告》&#xf…

阅读更多
FModel技术解析:虚幻引擎资源归档分析架构实现路径
2026/7/9 10:01:13

FModel技术解析:虚幻引擎资源归档分析架构实现路径

FModel技术解析:虚幻引擎资源归档分析架构实现路径 【免费下载链接】FModel Unreal Engine Archives Explorer 项目地址: https://gitcode.com/gh_mirrors/fm/FModel FModel作为一款基于CUE4Parse核心解析库的虚幻引擎归档浏览器,采用模块化设计理…

阅读更多
沐曦股份曦云C系列GPU率先实现腾讯混元混合专家模型 Hy3 Day 0适配
2026/7/9 10:01:13

沐曦股份曦云C系列GPU率先实现腾讯混元混合专家模型 Hy3 Day 0适配

7月6日,腾讯混元研发的快慢思考融合的混合专家模型 Hy3 正式发布并开源,沐曦股份曦云 C 系列 GPU 率先完成Day 0 全链路适配。依托沐曦股份全栈自研 MXMACA 软件栈,企业可实现零代码快速部署,一站式解锁 Hy3 代码、智能体、超长文…

阅读更多
如何永久保存B站缓存视频?m4s-converter开源工具3分钟搞定
2026/7/9 9:01:13

如何永久保存B站缓存视频?m4s-converter开源工具3分钟搞定

如何永久保存B站缓存视频?m4s-converter开源工具3分钟搞定 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否遇到过这样的烦恼&a…

阅读更多
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御
2026/7/8 4:53:25

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

阅读更多
3步彻底解决Windows右键菜单混乱问题:ContextMenuManager使用全攻略
2026/7/9 0:51:16

3步彻底解决Windows右键菜单混乱问题:ContextMenuManager使用全攻略

3步彻底解决Windows右键菜单混乱问题:ContextMenuManager使用全攻略 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是否曾为Windows右键菜单中那些…

阅读更多
GXDE OS下Wayland兼容性实战:从deepin-mutter原理到VMware Tools修复
2026/7/8 22:48:04

GXDE OS下Wayland兼容性实战:从deepin-mutter原理到VMware Tools修复

如果你正在用 GXDE OS 或者任何基于 Deepin 的发行版,并且遇到了“检测到窗口系统采用 Wayland 协议,程序即将退出”这类弹窗,或者发现 VMware Tools 在 Ubuntu 24.04 这类默认 Wayland 的系统上启动失败,那这篇文章就是为你准备的…

阅读更多
Unity WebGL部署Apache Tomcat:MIME配置、Gzip压缩与缓存优化实战
2026/7/9 0:01:12

Unity WebGL部署Apache Tomcat:MIME配置、Gzip压缩与缓存优化实战

1. 项目概述:当Unity WebGL遇上Apache Tomcat如果你是一名Unity开发者,想把精心制作的WebGL游戏或应用部署到自己的服务器上,那么Apache Tomcat大概率是你绕不开的一环。这不仅仅是把一堆构建出来的文件扔进一个文件夹那么简单。我见过太多项…

阅读更多
掌握Docker多阶段构建镜像优化技巧
2026/7/9 0:01:12

掌握Docker多阶段构建镜像优化技巧

掌握Docker多阶段构建镜像优化技巧在容器化技术日益普及的今天,Docker已成为开发与运维领域的基石工具。然而,随着应用复杂度提升,构建出的Docker镜像体积庞大、层数繁多、安全性欠佳等问题逐渐凸显,直接影响着部署效率、传输速度…

阅读更多
Ansible的AWX与作业模板调度
2026/7/9 0:01:12

Ansible的AWX与作业模板调度

在当今快速迭代的IT运维与开发领域,自动化已成为提升效率、保障一致性的核心支柱。Ansible作为一款强大的IT自动化工具,以其无代理、简单易用的特点广受欢迎。而AWX,作为Ansible上游项目提供的企业级Web界面、API及任务引擎,则将A…

阅读更多
基于Dify与DeepSeek构建私有知识库问答系统实战指南
2026/7/8 18:15:39

基于Dify与DeepSeek构建私有知识库问答系统实战指南

在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…

阅读更多
FAE放射组学分析工具:医学影像特征探索的完整解决方案
2026/7/8 10:11:21

FAE放射组学分析工具:医学影像特征探索的完整解决方案

FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE 你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…

阅读更多
DesktopNaotu:你的终极离线思维导图解决方案,告别网络依赖!
2026/7/9 3:17:42

DesktopNaotu:你的终极离线思维导图解决方案,告别网络依赖!

DesktopNaotu:你的终极离线思维导图解决方案,告别网络依赖! 【免费下载链接】DesktopNaotu 桌面版脑图 (百度脑图离线版,思维导图) 跨平台支持 Windows/Linux/Mac OS. (A cross-platform multilingual Mind Map Tool) 项目地址:…

阅读更多