MyBatis Generator 的简单使用方法示例
什么是 MyBatis Generator
MyBatis Generator 是一个基于 Java 的代码生成器,可以快速为 MyBatis 创建数据访问层代码。使用 MyBatis Generator 可以自动生成 MyBatis 的 POJO 类、Mapper 接口和 SQL 映射文件。
MyBatis Generator 的主要特点:
- 提供多种代码生成选项,可灵活定制生成的代码。
- 支持多种数据库,包括 MySQL、Oracle、DB2、SQL Server 等。
- 生成的代码可以与 MyBatis 或者 Spring 等框架集成。
- 易于使用,适合快速开发和小型项目。
MyBatis Generator 的使用方法
使用 MyBatis Generator 需要了解以下几个步骤:
- 准备数据库连接配置文件和生成器配置文件;
- 编写自定义的代码生成插件(可选);
- 运行生成器。
步骤一:准备配置文件
MyBatis Generator 需要两个配置文件:数据库连接配置文件和生成器配置文件。
数据库连接配置文件
数据库连接配置文件是 jdbc.properties
(或 jdbc.xml
), 其中包含了连接数据库的参数,如下所示:
# JDBC 驱动程序
jdbc.driverClassName=com.mysql.cj.jdbc.Driver
# 数据库连接 URL 地址
jdbc.url=jdbc:mysql://localhost:3306/mybatis_example?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
# 数据库连接用户名
jdbc.username=root
# 数据库连接密码
jdbc.password=123456
生成器配置文件
生成器配置文件是 generatorConfig.xml
,包含了生成器的配置选项。具体配置项请参考 MyBatis Generator 官方文档。
步骤二:编写自定义的代码生成插件(可选)
MyBatis Generator 可以通过插件的方式扩展其生成功能。如果需要编写自定义的插件,可以继承 org.mybatis.generator.api.PluginAdapter
类并实现相应的方法。
以下是一个示例,实现自定义注释插件,为生成的 Java 类添加注释:
public class MyCommentPlugin extends PluginAdapter {
private static final String AUTHOR = "MyBatis Generator";
@Override
public boolean modelBaseRecordClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
addComment(topLevelClass, introspectedTable.getRemarks());
return true;
}
@Override
public boolean modelFieldGenerated(Field field, TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn,
IntrospectedTable introspectedTable, ModelClassType modelClassType) {
addComment(field, introspectedColumn.getRemarks());
return true;
}
@Override
public boolean sqlMapInsertElementGenerated(XmlElement element, IntrospectedTable introspectedTable) {
addComment(element, "插入数据库记录");
return true;
}
private void addComment(JavaElement element, String commentText) {
element.addJavaDocLine("/**");
element.addJavaDocLine(" * " + commentText);
element.addJavaDocLine(" *");
element.addJavaDocLine(" * @author");
element.addJavaDocLine(" * " + AUTHOR);
element.addJavaDocLine(" */");
}
}
步骤三:运行生成器
MyBatis Generator 提供了多种方式运行生成器,包括使用 Ant、命令行,或者在 Maven 中配置插件等。这里我们以命令行的方式为例:
java -jar mybatis-generator-core-x.x.x.jar -configfile generatorConfig.xml -overwrite
以上命令将会根据 generatorConfig.xml
文件自动生成代码,并覆盖已经存在的文件。
示例
以下是两个示例,使用 MyBatis Generator 自动生成 POJO 类、Mapper 接口和 SQL 映射文件。
示例一:生成单表操作的代码
假设有一个表 user
,包含了 id
、name
、age
等字段。接下来我们使用 MyBatis Generator 自动生成与该表操作相关的代码。
步骤一:准备配置文件
假设连接数据库的信息已经写在了 jdbc.properties
文件中,我们需要编写 generatorConfig.xml
文件,用于配置 MyBatis Generator 的生成器选项。以下是一份简单的配置文件示例:
<?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>
<!-- 配置数据库连接 -->
<context id="mybatis-table" targetRuntime="MyBatis3">
<jdbcConnection driverClass="${jdbc.driverClassName}"
connectionURL="${jdbc.url}"
userId="${jdbc.username}"
password="${jdbc.password}">
</jdbcConnection>
<!-- 配置生成的目标包名 -->
<javaModelGenerator targetPackage="com.example.model"
targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<sqlMapGenerator targetPackage="com.example.mapper"
targetProject="src/main/resources">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 配置生成的接口 -->
<javaClientGenerator targetPackage="com.example.mapper"
targetProject="src/main/java"
type="XMLMAPPER">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!-- 配置要生成的表名称以及字段映射 -->
<table tableName="user" domainObjectName="User"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
<columnOverride column="id" property="id" jdbcType="INTEGER"/>
<columnOverride column="name" property="name" jdbcType="VARCHAR"/>
<columnOverride column="age" property="age" jdbcType="TINYINT"/>
</table>
</context>
</generatorConfiguration>
步骤二:运行生成器
并行以下命令,即可生成代码:
java -jar mybatis-generator-core-x.x.x.jar -configfile generatorConfig.xml -overwrite
以上命令将会在 src/main/java/com/example/model
,src/main/java/com/example/mapper
以及 src/main/resources/com/example/mapper
目录下生成相关的代码文件。
示例二:生成多表操作的代码
假设有两个表 user
和 order
,我们需要分别为这两个表生成相关的 POJO、Mapper 和 SQL 映射文件。示例代码如下:
步骤一:准备配置文件
假设连接数据库的信息已经写在了 jdbc.properties
文件中,我们需要编写 generatorConfig.xml
文件,用于配置 MyBatis Generator 的生成器选项。以下是一份简单的配置文件示例:
<?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>
<!-- 配置数据库连接 -->
<context id="mybatis-table" targetRuntime="MyBatis3">
<jdbcConnection driverClass="${jdbc.driverClassName}"
connectionURL="${jdbc.url}"
userId="${jdbc.username}"
password="${jdbc.password}">
</jdbcConnection>
<!-- 配置生成的目标包名 -->
<javaModelGenerator targetPackage="com.example.model"
targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 配置生成的 XML 目录 -->
<sqlMapGenerator targetPackage="com.example.mapper"
targetProject="src/main/resources">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 配置生成的接口 -->
<javaClientGenerator targetPackage="com.example.mapper"
targetProject="src/main/java"
type="XMLMAPPER">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!-- 配置要生成的表及字段 -->
<table tableName="user" domainObjectName="User"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
<columnOverride column="id" property="id" jdbcType="INTEGER"/>
<columnOverride column="name" property="name" jdbcType="VARCHAR"/>
<columnOverride column="age" property="age" jdbcType="TINYINT"/>
</table>
<table tableName="order" domainObjectName="Order"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
<columnOverride column="id" property="id" jdbcType="INTEGER"/>
<columnOverride column="no" property="no" jdbcType="VARCHAR"/>
<columnOverride column="price" property="price" jdbcType="DECIMAL"/>
</table>
</context>
</generatorConfiguration>
步骤二:运行生成器
并行以下命令,即可生成代码:
java -jar mybatis-generator-core-x.x.x.jar -configfile generatorConfig.xml -overwrite
以上命令将会在 src/main/java/com/example/model
,src/main/java/com/example/mapper
以及 src/main/resources/com/example/mapper
目录下生成相关的代码文件。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MyBatis Generator的简单使用方法示例 - Python技术站