下面我将详细讲解MyBatis Generator自动创建代码的完整攻略,包括使用步骤和示例说明。
MyBatis Generator是什么
MyBatis Generator是MyBatis框架家族中的一员,是一款自动生成MyBatis持久层代码(Mapper接口和Mapper XML文件)的工具。它是根据数据库表结构自动生成对应的JavaBean、Mapper接口及Mapper XML文件。
MyBatis Generator使用步骤
1.编写MyBatis Generator Config.xml文件
在生成代码之前,需要编写配置文件MyBatis Generator Config.xml。该文件描述了数据库连接信息、待生成代码的表字段信息以及生成代码的相关属性配置等。
在文件中需要进行以下配置:
- 数据库连接信息:用户名、密码、JDBC驱动和JDBC连接URL。
- 待生成代码的表:需要指定Java对象、Mapper接口和Mapper XML文件生成到哪个包下,以及待操作的数据库表和表中那些字段需要映射到Java对象属性。
- 生成代码配置:指定生成的Java对象、Mapper接口和Mapper XML文件的文件名前缀、后缀等信息。
2.执行MyBatis Generator
完成Config.xml文件的编写之后,将该文件保存到指定路径下,执行以下命令生成代码:
java -jar mybatis-generator-core-x.x.x.jar -configfile path/to/Config.xml -overwrite
其中,path/to/Config.xml
是Config.xml文件所在的路径,-overwrite
参数表示覆盖已有代码。
3.查看生成的代码
生成代码结束后,我们可以到指定路径下查看生成的Java对象、Mapper接口和Mapper XML文件。
MyBatis Generator的示例说明
以下为两个使用MyBatis Generator自动生成代码的示例:
示例1:生成单表的Java对象、Mapper接口和Mapper XML文件
1.创建数据库表
在Mysql数据库下创建person表,表结构如下:
CREATE TABLE person (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(45) DEFAULT NULL,
age int(11) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
2.编写Config.xml文件
在Config.xml文件中,我们需要配置数据库连接信息、待生成代码的表及各个文件的生成路径等。
以下为示例的Config.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>
<context id="MysqlTables" targetRuntime="MyBatis3">
<!-- 数据库链接 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/test"
userId="root"
password="root">
</jdbcConnection>
<javaModelGenerator targetPackage="com.example.demo.model" targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<sqlMapGenerator targetPackage="com.example.demo.mapper" targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<javaClientGenerator type="XMLMAPPER" targetPackage="com.example.demo.mapper" targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<table schema="test" tableName="person" domainObjectName="Person">
<property name="useActualColumnNames" value="false"/>
<generatedKey column="id" sqlStatement="MySql" identity="true" />
</table>
</context>
</generatorConfiguration>
3.执行MyBatis Generator
执行以下命令生成代码:
java -jar mybatis-generator-core-x.x.x.jar -configfile path/to/Config.xml -overwrite
生成的Java对象、Mapper接口和Mapper XML文件查看src/main/java包和src/main/resources包。
示例2:生成多表关联的Java对象、Mapper接口和Mapper XML文件
1.创建数据库表
在Mysql数据库中,创建person和address两个表,表结构分别如下:
CREATE TABLE person (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(45) DEFAULT NULL,
age int(11) DEFAULT NULL,
address_id int(11) DEFAULT NULL,
PRIMARY KEY (id),
KEY address_id (address_id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
CREATE TABLE address (
id int(11) NOT NULL AUTO_INCREMENT,
city varchar(45) DEFAULT NULL,
area varchar(45) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
2.编写Config.xml文件
在Config.xml文件中,我们需要配置数据库连接信息、待生成代码的表及各个文件的生成路径等。
以下为示例的Config.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>
<context id="MysqlTables" targetRuntime="MyBatis3">
<!-- 数据库链接 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/test"
userId="root"
password="root">
</jdbcConnection>
<javaModelGenerator targetPackage="com.example.demo.model" targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<sqlMapGenerator targetPackage="com.example.demo.mapper" targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<javaClientGenerator type="XMLMAPPER" targetPackage="com.example.demo.mapper" targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<table schema="test" tableName="person" domainObjectName="Person">
<property name="useActualColumnNames" value="false"/>
<generatedKey column="id" sqlStatement="MySql" identity="true" />
<property name="selectAllOrderByClause" value="id asc"/>
<property name="enableCountByExample" value="false"/>
<property name="enableUpdateByExample" value="false"/>
<property name="enableDeleteByExample" value="false"/>
<property name="enableSelectByExample" value="false"/>
</table>
<table schema="test" tableName="address" domainObjectName="Address">
<property name="useActualColumnNames" value="false"/>
<generatedKey column="id" sqlStatement="MySql" identity="true" />
<property name="selectAllOrderByClause" value="id asc"/>
<property name="enableCountByExample" value="false"/>
<property name="enableUpdateByExample" value="false"/>
<property name="enableDeleteByExample" value="false"/>
<property name="enableSelectByExample" value="false"/>
</table>
<table schema="test" tableName="person" domainObjectName="PersonAddress">
<property name="useActualColumnNames" value="false"/>
<generatedKey column="id" sqlStatement="MySql" identity="true" />
<property name="selectAllOrderByClause" value="id asc"/>
<property name="enableCountByExample" value="false"/>
<property name="enableUpdateByExample" value="false"/>
<property name="enableDeleteByExample" value="false"/>
<property name="enableSelectByExample" value="false"/>
<join tableName="address" alias="a" optional="true" >
<columnOverride column="id" property="address.id"/>
<columnOverride column="city" property="address.city"/>
<columnOverride column="area" property="address.area"/>
<leftJoin tableName="person">
<columnOverride column="address_id" property="person.id"/>
</leftJoin>
</join>
</table>
</context>
</generatorConfiguration>
3.执行MyBatis Generator
执行以下命令生成代码:
java -jar mybatis-generator-core-x.x.x.jar -configfile path/to/Config.xml -overwrite
生成的Java对象、Mapper接口和Mapper XML文件查看src/main/java包和src/main/resources包。此外生成的文件名可能会遇到覆盖问题,需要及时的进行调整。
以上是关于MyBatis Generator自动创建代码的完整攻略,希望能对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解MyBatis Generator自动创建代码(dao,mapping,poji) - Python技术站