用Maven搞定数据库表自动生成Java类文件,省时又方便的实操分享
- 问答
- 2025-12-24 23:04:04
- 3
(来源:CSDN博客《使用Maven插件自动生成Java实体类》) 记得刚入行那会儿,每次数据库表结构有变动,最头疼的就是手动去改对应的Java实体类,一个个字段去核对,驼峰命名转换,稍不留神就打错字母,或者漏了字段,调试起来特别浪费时间,后来项目组里的前辈推荐了用Maven插件来自动完成这个活儿,试了一下,真有种“解放双手”的感觉,这篇文章就想和大家分享一下我最常用的方法,没啥高深理论,就是一步步怎么配、怎么用,目标是让新手也能立刻上手。
(来源:MyBatis Generator 官方文档) 我主要用的工具是MyBatis Generator(简称MBG),它是一个专门为MyBatis框架设计的代码生成器,能根据数据库表结构自动生成实体类(POJO)、Mapper接口以及XML映射文件,我们这里聚焦在生成实体类这个核心功能上,它的好处是能和Maven无缝集成,只需要在项目的pom.xml文件里配置一下,运行一个简单的Maven命令,代码就“唰”地一下生成了,特别适合在表结构设计确定后,快速生成基础代码,避免重复劳动。
(来源:个人实践总结) 具体怎么做呢?你的电脑上得装好Maven并且配置好环境变量,这个网上教程很多,这里就不啰嗦了,我们从一个空的Maven项目开始说起。
第一步:在pom.xml里添加插件依赖
打开你项目根目录下的pom.xml文件,在<project>标签下的<build>部分的<plugins>里,添加MyBatis Generator插件,因为MBG需要连接数据库来获取表信息,所以还得把对应的数据库驱动依赖也加上,比如我用的是MySQL,下面是一个配置示例:
<dependencies>
<!-- 其他依赖... -->
<!-- MySQL驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version> <!-- 版本号请根据你的数据库版本调整 -->
</dependency>
</dependencies>
<build>
<plugins>
<!-- 其他插件... -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.4.2</version> <!-- 使用较新的稳定版本 -->
<configuration>
<!-- 配置文件的位置,稍后会创建这个文件 -->
<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
<overwrite>true</overwrite> <!-- 覆盖已存在的文件 -->
</configuration>
<dependencies>
<!-- 这里也再引入一次数据库驱动,确保插件能正确使用 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
第二步:创建核心配置文件generatorConfig.xml
这是最关键的一步,MBG的所有行为都由这个配置文件决定,在src/main/resources目录下(如果没有就创建一个),新建一个名为generatorConfig.xml的文件,这个文件内容稍微长一点,但结构很清晰:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration PUBLIC
"-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!-- 1. 数据库连接配置 -->
<context id="MySQLTables" targetRuntime="MyBatis3">
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/你的数据库名?useSSL=false&serverTimezone=UTC"
userId="你的数据库用户名"
password="你的数据库密码">
</jdbcConnection>
<!-- 2. 指定生成的Java模型类(实体类)的存放位置和包名 -->
<javaModelGenerator targetPackage="com.example.entity"
targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 3. 指定要生成的表 -->
<table tableName="你的表名" domainObjectName="你的实体类名"/>
<!-- <table tableName="user_info" domainObjectName="User"/> -->
<!-- 可以配置多个table,生成多个表的实体类 -->
</context>
</generatorConfiguration>
(来源:个人实践中的注意事项) 这里有几个地方需要你根据实际情况修改:
connectionURL:把你的数据库地址、端口、数据库名填进去,注意后面跟的参数,比如useSSL=false和serverTimezone=UTC是为了避免一些常见的连接问题。userId和password:填你的数据库用户名和密码。targetPackage:这是生成出来的Java实体类所在的包名,比如com.example.entity,你按自己项目的包结构来定。targetProject:一般就填src/main/java,表示生成到源代码目录。tableName:填数据库里真实的表名。domainObjectName:填你希望生成的Java类的类名,MBG会自动把下划线命名转为驼峰命名,比如表叫user_info,这里可以指定类名为User。
第三步:运行Maven命令生成代码
配置都搞定之后,就可以生成代码了,打开命令行(CMD或终端),进入到你的Maven项目根目录(就是有pom.xml的那个目录),然后执行以下命令:
mvn mybatis-generator:generate
(来源:实际操作反馈) 如果一切顺利,你会看到控制台输出一堆日志,最后有BUILD SUCCESS,这时候,你去IDE里刷新一下项目,在src/main/java/com/example/entity(根据你配置的包名)目录下,就会发现一个崭新的Java类文件已经生成了!类名就是你配置的domainObjectName,里面的字段和数据库表里的列一一对应,数据类型也自动转换好了(比如数据库的varchar对应Java的String,datetime对应Date等),还自动生成了getter和setter方法。
(来源:常见问题排查经验) 万一运行失败了,别慌,最常见的问题是数据库连接不上,请仔细检查generatorConfig.xml里的数据库URL、用户名和密码是否正确,数据库服务是否启动,还有就是驱动版本不匹配,确保pom.xml里MySQL驱动的版本和你安装的MySQL版本兼容,查看控制台报错信息,一般都能找到线索。
(来源:进阶使用技巧) 等用熟练了,你还可以在generatorConfig.xml里进行更多个性化配置,不想给每个字段都生成注释?可以加属性<property name="suppressAllComments" value="true"/>,想生成Swagger注解?可以引入额外的插件依赖并在配置里开启,这些高级玩法可以等你基本功能用顺了再慢慢研究。
用Maven配合MyBatis Generator来生成实体类,第一次配置可能觉得有点繁琐,但一旦配好,后续就一劳永逸了,尤其是在表结构频繁调整的开发初期,或者需要从零开始创建大量实体类时,这个工具能节省大量的时间和精力,还能有效减少因手误导致的错误,希望这个简单的分享能帮你提高效率,把时间花在更重要的业务逻辑开发上。

本文由水靖荷于2025-12-24发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:http://waw.haoid.cn/wenda/67821.html
