MyBatis逆向工程可以生成哪些内容?
MyBatis逆向工程可以根据已有的数据库表自动生成Java实体类、Mapper接口和XML文件。以下是一个示例:
- 首先,我们需要创建一个 Maven 工程,并在 pom.xml 文件中添加 Mybatis-Generator 插件:
<build> <plugins> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.4.0</version> <dependencies> <dependency> <groupId>org.mariadb.jdbc</groupId> <artifactId>mariadb-java-client</artifactId> <version>2.2.5</version> </dependency> </dependencies> <executions> <execution> <goals> <goal>generate</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
- 添加 Mybatis-Generator 配置文件(generatorConfig.xml),配置连接属性、生成器属性、Java模型和映射文件等信息。
这里以MySQL数据库为例,示例如下:
<?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="testTables" targetRuntime="MyBatis3"> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8" userId="root" password="password"> </jdbcConnection> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <javaModelGenerator targetPackage="com.test.entity" targetProject="src/main/java"> <property name="enableSubPackages" value="true"/> <property name="trimStrings" value="true"/> </javaModelGenerator> <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"> <property name="enableSubPackages" value="true"/> </sqlMapGenerator> <javaClientGenerator type="XMLMAPPER" targetPackage="com.test.mapper" targetProject="src/main/java"> <property name="enableSubPackages" value="true"/> </javaClientGenerator> <table tableName="t_test_user" domainObjectName="User"/> </context> </generatorConfiguration>
在上述配置文件中,我们指定了数据库连接信息、Java模型和映射文件存放的路径,以及需要生成表名为 t_test_user 的实体类和相关的映射文件。
- 在 Maven 项目中运行 Mybatis-Generator 插件执行逆向工程操作。
首先进入到 pom.xml 所在的目录,并在命令行运行如下代码:
mvn mybatis-generator:generate
运行成功后,即可在目标位置(默认为target/generated-sources)找到自动生成的Java类和Mapper接口文件,例如:
public class User { private Integer id; private String username; private String password; // getters 和 setters 略 } public interface UserMapper { int deleteByPrimaryKey(Integer id); // ... }
除此之外,Mybatis 逆向工程还支持自定义的插件、模板等功能。