品优购商城项目(一):MyBatis逆向工程
在现代web开发中,数据库的使用是必不可少的一部分。而对于Java程序员来说,MyBatis是一个使用广泛的持久层框架。在使用MyBatis的过程中,我们可以手动编写SQL语句和映射文件,但是这样会带来很多的繁琐和重复的工作。
为了避免重复工作,MyBatis提供了逆向工程的功能。逆向工程是根据数据库表生成对应的Java实体类、Mapper接口以及Xml文件的工具,可以大大降低手动编写代码的工作量。本文将介绍如何使用逆向工程生成代码,以及其中的注意事项。
准备工作
在操作逆向工程之前,我们需要创建好数据库和表,并向表中插入若干条数据。本文不会过多讲述数据库和表的创建过程,可参考相关资料进行学习。这里假设我们有一个名为 pyg
的数据库,其中有一个 tb_brand
表,表的结构如下:
CREATE TABLE `tb_brand` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`first_char` varchar(1) DEFAULT NULL,
`image` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4;
配置逆向工程
MyBatis提供了一个叫做mybatis-generator
的插件来执行逆向工程,我们需要按照以下步骤进行配置:
- 在
pom.xml
文件中,添加mybatis-generator-maven-plugin
插件的依赖:
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.4.0</version>
</dependency>
- 在
pom.xml
文件中,添加generatorConfig.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>
<dependencies>
<!-- MySQL驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
<!-- MyBatis逆向工程 -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.4.0</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
这里需要注意以下几点:
<configuration>
元素中,configurationFile
属性指定逆向工程的配置文件路径。本例中配置文件路径为src/main/resources/generatorConfig.xml
;<overwrite>
属性指定是否覆盖已有的代码文件。设为true时表示直接覆盖;-
<dependencies>
元素中需要引入MySQL驱动和MyBatis逆向工程依赖。 -
创建
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>
<!-- 数据库驱动类路径 -->
<classPathEntry
location="mysql-connector-java-8.0.23.jar" />
<context id="MySQL"
targetRuntime="MyBatis3">
<!-- jdbc配置 -->
<jdbcConnection
driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/pyg?useSSL=false&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8"
userId="root"
password="root">
</jdbcConnection>
<!-- 生成Java文件的路径 -->
<javaModelGenerator
targetPackage="com.pinyougou.pojo"
targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 生成Mapper接口文件的路径 -->
<sqlMapGenerator
targetPackage="com.pinyougou.mapper"
targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 生成对应Mapper XML文件的路径 -->
<javaClientGenerator
type="XMLMAPPER"
targetPackage="com.pinyougou.mapper"
targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!-- 要生成实体类、Mapper接口以及Mapper XML文件的数据库表 -->
<table tableName="tb_brand"/>
</context>
</generatorConfiguration>
这里需要注意以下几点:
classPathEntry
元素中指定驱动程序的位置;jdbcConnection
元素中的属性值表示数据库的连接信息;javaModelGenerator
元素中的targetPackage
属性表示Java实体类的生成路径;sqlMapGenerator
元素中的targetPackage
属性表示Mapper接口的生成路径;javaClientGenerator
元素中的targetPackage
属性表示Mapper XML文件的生成路径;table
元素指定要生成代码的数据库表名。
执行逆向工程
配置文件创建好之后,我们就可以使用逆向工程生成代码了。在命令行中输入以下命令:
$ mvn mybatis-generator:generate
这条命令会让 Maven 执行逆向工程的流程,在 target
目录下生成 Java 实体类、Mapper 接口以及 Mapper XML 文件。完成后,我们可以自由地对生成的代码进行修改和调整。
结论
本文介绍了如何使用MyBatis逆向工程生成代码,大大减轻了手写代码的工作量。对于大量使用MyBatis的应用程序而言,逆向工程是一个功不可没的利器。值得一提的是,逆向工程虽然有着自动化的特点,但是在生成代码后仍需要针对代码的逻辑进行适当的调整和修改。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:品优购商城项目(一)mybatis逆向工程 - Python技术站