MyBatis Generator逆向工程使用教程

MyBatis Generator逆向工程使用教程

以下方式二选一即可(根据自己喜好)

1.原生方式使用

此教程可以去mybatis官网查询,MyBatis Generator使用教程;只不过操作起来比较繁琐,下面是使用步骤。

1.1 环境搭建

为了使示例演示简单,这里以D:\mybatis-generator目录(该目录为空)为例,操作均在该目录进行。

1.1.1 创建基础目录

D盘目录下创建mybatis-generator目录,此目录类似于项目的basedir一样,如下图:

avatar

1.1.2 添加核心jar文件

逆向工程需要2个核心的jar文件mybatis-generator-core-xxx.jarmysql-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目录,如下图:

avatar

1.2 配置逆向配置文件

avatar

新建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

生成示例图:

avatar

avatar

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文件

avatar

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插件使用即可

avatar

  • 使用方式二

IDEA导航栏 --> Run --> Edit Configurations ... --> Run/Debug Configurations --> "+"号新建Maven项 --> 配置Name、Working diectory、Command line

avatar

注意Working diectory选择当前项目工程,Command line处填值:mybatis-generator:generate -e

选择刚刚配置的运行配置,运行:

avatar

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后,去配置的生成目录下查看即可

posted @ 2021-05-27 03:25  youngyajun  阅读(638)  评论(0编辑  收藏  举报