MyBatis‑Generator 逆向工程(SSM Maven 聚合项目)

发布时间:2026/10/21 23:26:08

MyBatis‑Generator 逆向工程(SSM Maven 聚合项目) 一、项目模块结构说明采用 Maven 聚合架构父工程统一管理版本号聚合所有子模块。core 核心模块model、dao、service、mapper 映射文件、工具类逆向工程写在此模块。web 模块前台 / 后台依赖 core只写 Controller 和页面不复写底层 Dao、Service。MyBatis‑GeneratorMBG职责读取 MySQL 数据表自动生成实体 Model、Mapper 接口、Mapper.xml持久层代码不会生成 Service 层分页、多表 SQL 仍需手动写。二、Maven 依赖配置core 模块 pom.xml 引入逆向工程依赖版本由父工程统一管控。dependency groupIdorg.mybatis.generator/groupId artifactIdmybatis-generator-core/artifactId version1.3.6/version /dependency三、generatorConfig.xml 配置文件路径core/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 idmybatisGenerator !--关闭自动注释-- commentGenerator property namesuppressAllComments valuetrue / /commentGenerator !--数据库连接配置-- jdbcConnection driverClasscom.mysql.jdbc.Driver connectionURLjdbc:mysql://localhost:3306/test?serverTimezoneCTTamp;useUnicodetrueamp;characterEncodingutf-8 userIdroot passwordroot /jdbcConnection javaTypeResolver property nameforceBigDecimals valuefalse / /javaTypeResolver !--生成实体类输出位置-- javaModelGenerator targetPackagecn.tx.model targetProject.\core\src\main\java property nameenableSubPackages valuefalse / property nametrimStrings valuetrue / /javaModelGenerator !--Mapper XML输出位置-- sqlMapGenerator targetPackagemapper targetProject.\core\src\main\resources property nameenableSubPackages valuefalse / /sqlMapGenerator !--Mapper接口输出位置-- javaClientGenerator typeXMLMAPPER targetPackagecn.tx.dao targetProject.\core\src\main\java property nameenableSubPackages valuefalse / /javaClientGenerator !--配置逆向表关闭Example复杂条件查询-- table tableNamesonger enableCountByExamplefalse enableUpdateByExamplefalse enableDeleteByExamplefalse enableSelectByExamplefalse selectByExampleQueryIdfalse / /context /generatorConfiguration四、Java 执行逆向工程core/src/test/java/cn/tx/util/Generator.javapackage cn.tx.util; import org.mybatis.generator.api.MyBatisGenerator; import org.mybatis.generator.config.Configuration; import org.mybatis.generator.config.xml.ConfigurationParser; import org.mybatis.generator.internal.DefaultShellCallback; import java.io.File; import java.util.ArrayList; import java.util.List; public class Generator { public void generator() throws Exception { ListString warnings new ArrayList(); boolean overwrite true; //多模块重点相对路径以父工程作为根目录 File configFile new File(core/src/main/resources/generatorConfig.xml); ConfigurationParser parser new ConfigurationParser(warnings); Configuration config parser.parseConfiguration(configFile); DefaultShellCallback callback new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator new MyBatisGenerator(config, callback, warnings); myBatisGenerator.generate(null); } public static void main(String[] args) throws Exception { Generator generatorSqlmap new Generator(); generatorSqlmap.generator(); } }运行 main ()自动生成 model 实体、mapper 接口、mapper.xml 映射文件。五、MBG 常见踩坑汇总相对路径报错Maven 聚合项目IDEA 运行配置Working directory设置为父工程目录否则找不到配置 xml。时区异常jdbc 连接 url 必须配置serverTimezoneCTT高版本 mysql 驱动缺少会抛异常。文件覆盖风险overwritetrue会直接覆盖旧 mapper.xml手写的 SQL 会丢失执行前务必备份 xml。Linux 下 MySQL 区分表名大小写table tableNamexxx表名必须和数据库完全一致。生成代码后执行mvn clean compile编译生成 target 下 class 字节码否则报ClassNotFoundException。六、小结MyBatis‑Generator 是 MyBatis 官方工具只负责数据库表 → 持久层代码。只生成 model、mapper 接口、mapper.xmlService 层、业务 SQL 不会生成。Maven 多模块项目绝大多数异常根源是相对路径与编译缓存报错优先执行mvn clean。
延伸阅读

更多相关文章

2026/10/22 4:25:29

hive数组巨详细解析

一、Hive 数组是什么? Hive 的数组(ARRAY)用于在一个字段中保存多个同类型元素,类似 Java 的 List 或 Python 的 list。 例如: user_id | tags --------|---------------------- 1 | ["java", "h…

2026/10/21 6:34:47

转行做无人机维修,值得投入一个月去学吗?

最近,“低空经济”彻底火了,无人机维修这个曾经低调的硬核技术赛道,突然成了转行求职者眼中的“香饽饽”。面对网上满天飞的“人才缺口大”、“月入过万”等标签,很多想寻求新出路的朋友都在问:现在转行做无人机维修&a…

2026/10/18 11:59:27

「AI 应用 / AI Agent」行业日报 · 2026-08-24

「AI 应用 / AI Agent」行业日报 2026-08-24综合整理自 HN, GitHub, 36氪, 钛媒体, Bing,聚焦 AI 应用领域今日动态。📌 今日摘要 今日行业主线呈现明显分化:头部模型厂商遇冷,Anthropic 最强模型用户增长乏力,而便宜…

2026/10/22 4:27:37

AI工具选型指南:从思维误区到国产模型反超与落地评估

这段时间陆陆续续帮几家公司做过AI工具的选型评估,发现一个特别有意思的现象:很多人选AI工具的方式,还停留在三年前看国外发布会、跟着海外榜单走的老路上。一边吐槽手里的模型“水土不服”,一边对身边的国产方案视而不见。直到某…

2026/10/22 4:27:37

QT家谱系统:链表+树+图的数据结构实战落地

简介:本资源是一份高质量的数据结构课程设计项目——基于Qt开发的家谱管理系统,面向计算机及相关专业本科生,适用于课程设计、期末大作业实践与C/Qt入门项目实战。系统完整实现家谱数据的增删查改、多代关系可视化展示及搜索功能,…

2026/10/22 4:27:37

考研传输层实战:TCP状态机、滑动窗口与拥塞控制深度拆解

1. 这不是教科书翻页,而是考研传输层的实战拆解现场“计算机网络(考研)第五章 传输层”——这行字出现在无数考研人的复习计划表、错题本封面、深夜划重点的PDF页眉上。它不像物理层那样具象可摸,也不像应用层那样有浏览器、微信这…

2026/10/22 4:27:37

Redis分布式锁实战指南:从SETNX到Redisson看门狗与RedLock避坑

做后端开发的这几年,Redis分布式锁几乎成了绕不开的话题。不管是秒杀抢购、订单防重,还是定时任务在集群环境下的互斥调度,大家的第一反应往往都是“用Redis搞一把分布式锁”。我最初也是这么干的——SETNX一把梭,结果线上踩了几次…

2026/10/22 4:27:37

ReAct智能体原理与LangGraph实践:从零搭建可调工具的大模型Agent

做了大半年智能体应用,我越来越发现一个事实:绝大多数看起来唬人的AI智能体,内核其实就是同一套模式——ReAct。这个缩写乍一看学术味十足,拆开就是 Reasoning Acting:让大模型一边推理、一边行动,拿行动的…

2026/10/22 4:22:37

Redis作为AI短期记忆中枢的三大协同模式与数据建模实践

1. 为什么 Redis 突然成了 AI 系统的“记忆中枢”?最近在几个技术交流群里,频繁看到有人发截图:某大模型服务的响应延迟从 800ms 骤降到 120ms,监控图上 Redis 的 QPS 曲线同步冲高;另一份内部架构文档里,“…

2026/10/21 4:53:08

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/22 0:01:49

电商智能运营体系从0到1:架构设计、落地步骤与避坑指南

前两年我们团队接了一个电商平台的运营中台项目,目标很直白:把过去靠运营拍脑袋做的选品、定价、发券、推活动这些事,逐步用数据算法和自动化流程代替。项目名字内部就叫“电商智能运营体系”。最近有不少朋友问我当时是怎么设计的、踩过哪些…

2026/10/22 0:01:49

若依框架AI代码生成不稳定?用Agent Skill三层结构+五步法搞定

最近一段时间,我一直想把后台管理系统里那些机械重复的增删改查代码交给AI去写。框架用的是若依,按理说这类业务代码模式非常固定,应该是AI最擅长的事情。可真试下来却不是那么回事——你让AI生成一个用户管理模块,它给出的Contro…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑