该篇文章介绍使用 MyBatis-Plus 插件生成 数据库实体类、Mapper以及对应简单的 CRUD XML文件。效果图如下:
更多学习参考 MyBatis-Plus 官网
1.数据库准备
test 数据库下创建了一个 user 表,表字段如下所示:
2.创建 Maver 项目
1) 在pom 文件下导入以下依赖
<dependencies>
<!-- MySql 数据库驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<!-- 选择数据库的版本 -->
<version>8.0.22</version>
</dependency>
<!-- mybatis-plus 代码生成器 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.0-RELEASE</version>
<scope>test</scope>
</dependency>
</dependencies>
2) 在pom 文件下导入以下插件
<!-- mybatis-plus 插件 -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<!-- 指定配置文件,待会会创建这个配置文件 -->
<configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile>
<overwrite>true</overwrite>
<verbose>true</verbose>
</configuration>
</plugin>
在 pom 文件下添加资源映射
我的 xxxMapper,xml 文件是在 src/main/java/top/shijialeya/mapper/xml 目录下,并不是在 resources 下的。如果 xxxMapper,xml 需要在 resources 下的话这个步骤忽略。
<!-- 因为这里的 XXXmapper.xml 文件是不在默认 resource 目录下的,这里需要修改打包资源配置 -->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/xml/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
整个 pom 文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>top.shijialeya.mybatisplus</groupId>
<artifactId>mybatis-plus</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!-- MySql 数据库驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<!-- 选择数据库的版本 -->
<version>8.0.22</version>
</dependency>
<!-- mybatis-plus 代码生成器 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.0-RELEASE</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!-- mybatis-plus 插件 -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile>
<overwrite>true</overwrite>
<verbose>true</verbose>
</configuration>
</plugin>
</plugins>
<!-- 因为这里的 XXXmapper.xml 文件是不在默认 resource 目录下的,这里需要修改打包资源配置 -->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/xml/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
</project>
3) 在 resources 目录下创建 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>
<!-- == 需要指定 mysql-connector-java-8.0.22.jar 的路径 == -->
<classPathEntry location="H:\maven\maven_repository\mysql\mysql-connector-java\8.0.22\mysql-connector-java-8.0.22.jar"/>
<context id="mysql">
<property name="javaFileEncoding" value="UTF-8"/>
<property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/>
<plugin type="org.mybatis.generator.plugins.SerializablePlugin"/>
<commentGenerator>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!-- == 指定数据信息:Driver、url、用户名、密码 == -->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai&"
userId="root"
password="root">
<property name="nullCatalogMeansCurrent" value="true"/>
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- == 指定生成数据表实体类的位置。下面表示生成在:src/main/java/top/shijialeya/po 下 == -->
<javaModelGenerator targetPackage="top.shijialeya.po" targetProject="src\main\java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- == 指定生成 XML 的位置。下面表示生成在:src/main/java/top/shijialeya/mapper/xml 下 == -->
<sqlMapGenerator targetPackage="top.shijialeya.mapper.xml" targetProject="src\main\java">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- == 指定生成 Mapper 文件的位置。下面表示生成在:src/main/java/top/shijialeya/mapper 下 == -->
<javaClientGenerator type="XMLMAPPER" targetPackage="top.shijialeya.mapper" targetProject="src\main\java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<table tableName="%"
enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false"
enableSelectByExample="false" selectByExampleQueryId="false">
<property name="useActualColumnNames" value="false"/>
</table>
</context>
</generatorConfiguration>
出现
表示需要修改的地方
4) 执行 mybatis-generator 插件
点击 maven – 展开 Plugins – 展开 mybatis-generator – 点击 mybatis-generator:generate
执行完毕后,就可以在项目中就可以看到生成的代码了。
我的 IDEA 中装了 MyBatisX 插件,没有装该插件的同学也建议安装,安装之后确实香。