MyBatis框架之mybatis逆向工程自动生成代码完整攻略
什么是逆向工程
逆向工程是指通过数据库的表结构自动生成Java代码的过程。在Web开发中,Java开发人员通常会和数据库打交道,而每次手写一个POJO类、DAO类和Mapper文件比较繁琐,如果能够快速地生成这些代码,开发效率可以得到显著提升。MyBatis框架提供了逆向工程工具用于自动生成Java代码,这篇攻略将介绍使用逆向工程自动生成Java代码的全过程。
步骤一:创建Maven项目
首先需要创建Maven项目,创建过程中需要在pom.xml文件中引入MyBatis和MySQL的依赖。
<!-- 引入MyBatis及其依赖 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.4.0</version>
</dependency>
<!-- 引入MySQL驱动依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
步骤二:配置逆向工程插件
在Maven项目中,需要配置MyBatis Generator插件。在pom.xml文件中添加如下配置:
<build>
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.4.0</version>
<!-- 配置逆向工程插件 -->
<configuration>
<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
<overwrite>true</overwrite>
<verbose>true</verbose>
</configuration>
</plugin>
</plugins>
</build>
步骤三:配置generatorConfig.xml文件
MyBatis Generator插件需要一个generatorConfig.xml的配置文件,用于指定生成代码所需要的具体信息,例如数据库连接信息、需要生成代码的表等。一个典型的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>
<!-- 指定数据库连接参数 -->
<context id="context1" targetRuntime="MyBatis3">
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/demo"
userId="root"
password="root">
</jdbcConnection>
<!-- 指定要逆向生成的表 -->
<table tableName="user"></table>
<!-- 指定Java类生成的位置 -->
<javaModelGenerator targetPackage="com.example.demo.model"
targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- 指定DAO接口生成的位置 -->
<sqlMapGenerator targetPackage="com.example.demo.mapper"
targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!-- 指定Mapper文件生成的位置 -->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.example.demo.mapper"
targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
</context>
</generatorConfiguration>
上述代码中:
jdbcConnection
元素指定了数据库连接信息;table
元素指定了需要逆向生成的表;javaModelGenerator
元素指定了Java类(POJO)的生成位置;sqlMapGenerator
元素指定了DAO接口的生成位置;javaClientGenerator
元素指定了Mapper文件的生成位置。
步骤四:运行逆向工程插件
在完成以上步骤之后,在maven项目根目录下通过命令行执行逆向工程的插件:mvn mybatis-generator:generate
,MyBatis就会根据generatorConfig.xml文件中的配置信息,自动生成Java代码。
执行完该命令后,在指定的位置可以看到三个文件夹,分别是com.example.demo.mapper、com.example.demo.model和com.example.demo.mapper.xml,这些文件夹中就是根据数据库的表结构反向生成的Java类、DAO接口和Mapper文件。
下面提供两个详细示例:
示例一:逆向生成MySQL数据库表对应的Java Model、DAO接口以及Mapper文件
假设使用了MySQL数据库,有一张名字为user的表,表结构如下:
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`password` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4;
按照上述步骤,新建Maven项目,引入相关依赖,配置逆向工程插件,配置generatorConfig.xml文件,运行逆向工程插件,会在指定位置看到以下文件和目录:
src/main/java/com/example/demo/mapper/UserMapper.java
src/main/java/com/example/demo/model/User.java
src/main/java/com/example/demo/mapper/xml/UserMapper.xml
其中,UserMapper.java是自动生成的DAO接口,User.java是自动生成的Java Model,UserMapper.xml是自动生成的Mapper文件。
示例二:逆向生成Oracle数据库表对应的Java Model、DAO接口以及Mapper文件
假设使用了Oracle数据库,有一张名字为student的表,表结构如下:
CREATE TABLE STUDENT(
ID CHAR(8) NOT NULL,
NAME VARCHAR2(15) NOT NULL,
BIRTHDAY DATE,
GENDER CHAR(2),
ADDRESS VARCHAR2(32),
CONSTRAINTS PK_STUDENT PRIMARY KEY (ID)
);
按照上述步骤,新建Maven项目,引入相关依赖,配置逆向工程插件,配置generatorConfig.xml文件,运行逆向工程插件,会在指定位置看到以下文件和目录:
src/main/java/com/example/demo/mapper/StudentMapper.java
src/main/java/com/example/demo/model/Student.java
src/main/java/com/example/demo/mapper/xml/StudentMapper.xml
其中,StudentMapper.java是自动生成的DAO接口,Student.java是自动生成的Java Model,StudentMapper.xml是自动生成的Mapper文件。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MyBatis框架之mybatis逆向工程自动生成代码 - Python技术站