MyBatis Generator逆向工程使用教程
MyBatis Generator逆向工程使用教程
以下方式二选一即可(根据自己喜好)
1.原生方式使用
此教程可以去mybatis官网查询,MyBatis Generator使用教程;只不过操作起来比较繁琐,下面是使用步骤。
1.1 环境搭建
为了使示例演示简单,这里以D:\mybatis-generator
目录(该目录为空)为例,操作均在该目录进行。
1.1.1 创建基础目录
在D盘
目录下创建mybatis-generator
目录,此目录类似于项目的basedir
一样,如下图:
1.1.2 添加核心jar文件
逆向工程需要2个核心的jar文件mybatis-generator-core-xxx.jar
和mysql-connector-java-xxx.jar
,这2个文件都可以在maven中央仓库找到;为了方便,下面提供两个指定版本的jar下载地址,保存到mybatis-generator
目录下:
mybatis-generator-core-1.4.0.jar下载
mysql-connector-java-5.1.47.jar下载
下载后保存到D:\mybatis-generator
目录,如下图:
1.2 配置逆向配置文件
新建myBatisGeneratorConfig.xml
逆向配置文件,myBatisGeneratorConfig.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数据库驱动路径,使用本地绝对路径;windows下,绝对路径不建议直接复制鼠标右键-属性-安全下的绝对路径,建议手打 -->
<classPathEntry location="D:\mybatis-generator\mysql-connector-java-5.1.47.jar"/>
<!-- 上下文环境配置 -->
<context id="Mybatis3Context" targetRuntime="MyBatis3">
<!-- 指定生成的java文件的编码方式 -->
<property name="javaFileEncoding" value="UTF-8"/>
<commentGenerator>
<!-- 是否去除自动生成的注释;true(是)/false(否) -->
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!--数据库连接的信息:驱动类、连接地址、用户名、密码;注意driverClass的值,mysql驱动8版本的带cj包名称 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://ip:端口/数据库名称?useSSL=false"
userId="用户名"
password="密码">
</jdbcConnection>
<!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer;为true时把JDBC DECIMAL和
NUMERIC类型解析为java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- 逆向生成的POJO类的配置;targetPackage(包名称)可以指定,也可以不指定;targetProject(逆向生成的文件保存目录) -->
<javaModelGenerator targetPackage="pojo" targetProject="D:\mybatis-generator">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="true"/>
<!-- 此属性用于选择MyBatis生成器是否添加代码以从数据库返回的字符字段中修剪空白。如果数据库将数据存储在CHAR字段而不是VARCHAR字段中,这将非常有用。如果为true,MyBatis生成器将插入代码来修剪字符字段。可以使用或元素中的trimStrings属性重写。
默认值为false。 -->
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 逆向生成的xml文件的配置 -->
<sqlMapGenerator targetPackage="xml" targetProject="D:\mybatis-generator">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 逆向生成的api接口类(mapper接口)的配置 -->
<javaClientGenerator type="XMLMAPPER" targetPackage="api" targetProject="D:\mybatis-generator">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!-- 指定数据库哪张表需要逆向 -->
<table schema="" tableName="表名称"/>
</context>
</generatorConfiguration>
具体参数可以参考官方逆向配置文件说明
1.3 逆向生成代码
因为mybatis-generator-core-1.4.0.jar
文件在mybatis-generator目录
下,所以在mybatis-generator目录下执行如下代码:
java -jar mybatis-generator-core-1.4.0.jar -configfile D:\mybatis-generator\myBatisGeneratorConfig.xml -overwrite
或者直接用绝对路径执行,这种方法不限在哪个目录执行命令:
java -jar D:\mybatis-generator\mybatis-generator-core-1.4.0.jar -configfile D:\mybatis-generator\myBatisGeneratorConfig.xml -overwrite
生成示例图:
2.整合方式使用
以maven插件整合使用,相对原生使用方式显得很简单,需要操作步骤如下:
2.1 添加插件
pom文件中添加逆向插件:
<build>
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.7</version>
<configuration>
<!-- 逆向配置文件的位置 -->
<configurationFile>${basedir}/src/main/resources/myBatisGeneratorConfig.xml</configurationFile>
<!--允许移动生成的文件-->
<verbose>true</verbose>
<!--允许覆盖生成的文件-->
<overwrite>true</overwrite>
</configuration>
<executions>
<execution>
<id>Generate MyBatis Artifacts</id>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<dependencies>
<!-- mybatis generator核心依赖 -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.7</version>
</dependency>
<!-- mysql驱动 -->
<!-- 如果此处不添加数据库驱动,则需要在逆向配置文件中的<classPathEntry location=""/>指定驱动文件 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
2.2 添加逆向配置文件
根据mybatis-generator-maven-plugin
插件指定的逆向配置文件的位置,在项目resources
目录下添加myBatisGeneratorConfig.xml
文件
myBatisGeneratorConfig.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>
<!--
1.配置mysql数据库驱动路径,使用本地绝对路径;windows下,绝对路径不建议直接复制鼠标右键-属性-安全下的绝对路径,建议手打
2.如果已经在maven mybatis-generator-maven-plugin插件添加数据库驱动依赖,此处不需要指定<classPathEntry />了
-->
<!--<classPathEntry location="D:\mybatis-generator\mysql-connector-java-5.1.47.jar"/>-->
<!-- 上下文环境配置 -->
<context id="Mybatis3Context" targetRuntime="MyBatis3">
<!-- 指定生成的java文件的编码方式 -->
<property name="javaFileEncoding" value="UTF-8"/>
<commentGenerator>
<!-- 是否去除自动生成的注释;true(是)/false(否) -->
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!--数据库连接的信息:驱动类、连接地址、用户名、密码;注意driverClass的值,mysql驱动8版本的带cj包名称 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://ip:端口/数据库名称?useSSL=false"
userId="用户名"
password="密码">
</jdbcConnection>
<!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer;为true时把JDBC DECIMAL和
NUMERIC类型解析为java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- 逆向生成的POJO类的配置;targetPackage(包名称)可以指定,也可以不指定;targetProject(逆向生成的文件保存目录) -->
<javaModelGenerator targetPackage="pojo" targetProject="D:\mybatis-generator">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="true"/>
<!-- 此属性用于选择MyBatis生成器是否添加代码以从数据库返回的字符字段中修剪空白。如果数据库将数据存储在CHAR字段而不是VARCHAR字段中,这将非常有用。如果为true,MyBatis生成器将插入代码来修剪字符字段。可以使用或元素中的trimStrings属性重写。
默认值为false。 -->
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 逆向生成的xml文件的配置 -->
<sqlMapGenerator targetPackage="xml" targetProject="D:\mybatis-generator">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 逆向生成的api接口类(mapper接口)的配置 -->
<javaClientGenerator type="XMLMAPPER" targetPackage="api" targetProject="D:\mybatis-generator">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!-- 指定数据库哪张表需要逆向 -->
<table schema="" tableName="表名称"/>
</context>
</generatorConfiguration>
2.3 使用逆向插件
- 使用方式一:
直接在侧边栏点击maven插件使用即可
- 使用方式二:
IDEA导航栏 --> Run --> Edit Configurations ... --> Run/Debug Configurations
--> "+"号新建Maven项 --> 配置Name、Working diectory、Command line
注意Working diectory选择当前项目工程,Command line处填值:mybatis-generator:generate -e
选择刚刚配置的运行配置,运行:
2.4 查看结果
运行日志输出:
[INFO] Error stacktraces are turned on.
[INFO] Scanning for projects...
[INFO]
[INFO] ---------------------< com.demo:mybatis-generator >---------------------
[INFO] Building mybatis-generator 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- mybatis-generator-maven-plugin:1.3.7:generate (default-cli) @ mybatis-generator ---
[INFO] Connecting to the Database
[INFO] Introspecting table blog
[INFO] Generating Example class for table blog
[INFO] Generating Record class for table blog
[INFO] Generating Mapper Interface for table blog
[INFO] Generating SQL Map for table blog
[INFO] Saving file BlogMapper.xml
[INFO] Saving file BlogExample.java
[INFO] Saving file Blog.java
[INFO] Saving file BlogMapper.java
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.845 s
显示BUILD SUCCESS后,去配置的生成目录下查看即可