Mybatis逆向工程之三种实现方法

Posted lzj123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis逆向工程之三种实现方法相关的知识,希望对你有一定的参考价值。

1.逆向工程之原始方法

(1)下载两个jar包:mysql-connector-java(6.x版本及以上的和5.x版本有所区别,主要是驱动和时区;详情参见:https://blog.csdn.net/csugonghang/article/details/79435033)、mybatis-generator-core

(2)创建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>
    <!-- 数据库驱动,如果配置文件和上面两个jar在同一级目录,则可以直接如下填写,否则为了防止报错直接写绝对路径即可-->
    <classPathEntry
        location="mysql-connector-java-5.1.38.jar" />
    <context id="DB2Tables" targetRuntime="MyBatis3">
        <commentGenerator>
            <property name="suppressDate" value="true" />
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="true" />
        </commentGenerator>
        <!--数据库链接URL,用户名、密码 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
        
            connectionURL="jdbc:mysql://localhost/liuzj"
            userId="root" password="">
        </jdbcConnection>
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>
        <!-- 生成模型的包名和位置 -->
        <javaModelGenerator
            targetPackage="com.liuzj.mybatis.entity"
            targetProject="E:\\self-code\\mybatistest\\src\\main\\java">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <!-- 生成映射文件的包名和位置 -->
        <sqlMapGenerator
            targetPackage="mapper"            
            targetProject="E:\\self-code\\mybatistest\\src\\main\\resources">
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>

        <!-- 生成的Mapper接口的路径 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.liuzj.mybatis.mapper"
                             targetProject="E:\\self-code\\mybatistest\\src\\main\\java">
            <property name="enableSubPackages" value="true"/>
            <property name="rootClass" value="com.springboot.mybatis.demo.mapper.common.BaseMapper"/>
        </javaClientGenerator>

        <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名 -->
        <table tableName="person" domainObjectName="Person"
            enableCountByExample="false" enableUpdateByExample="false"
            enableDeleteByExample="false" enableSelectByExample="false"
            selectByExampleQueryId="false"></table>
    </context>

</generatorConfiguration>  

(3)将上面三个东西一起放到项目的特定位置,此样例是将三个东西一起放到了和项目src同级目录,如果是其他目录也可以,但是需要改动generatorConfig配置文件的相关配置

(4)执行 java -jar mybatis-generator-core-5.1.38.jar -configfile generatorConfig.xml -overwrite


 2.逆向工程之Maven集成

(1)在pom文件中引入插件:mybatis-generator-maven-plugin;具体样例如下:

<build>
        <plugins>
            <!-- mybatis-generator反向工程 -->
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.5</version>
                <configuration>
                    <!-- 在控制台打印执行日志 -->
                    <verbose>true</verbose>
                    <!-- 重复生成时会覆盖之前的文件-->
                    <overwrite>true</overwrite>
                    <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
                </configuration>
                <!-- 此插件运行所要依赖的jar -->
                <dependencies>

                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>5.1.38</version>
                    </dependency>

                    <dependency>
                        <groupId>org.mybatis.generator</groupId>
                        <artifactId>mybatis-generator-core</artifactId>
                        <version>1.3.5</version>
                    </dependency>

                    <dependency>
                        <groupId>org.mybatis</groupId>
                        <artifactId>mybatis</artifactId>
                        <version>3.4.2</version>
                    </dependency>

                </dependencies>
            </plugin>
        </plugins>
    </build>

(2)创建generatorConfig配置文件并放到上面 configurationFile 配置的路径下;详细配置如下:

 

<?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-5.1.38.jar" />-->
    <context id="DB2Tables" targetRuntime="MyBatis3">
        <commentGenerator>
            <property name="suppressDate" value="true" />
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="true" />
        </commentGenerator>
        <!--数据库链接URL,用户名、密码 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
        
            connectionURL="jdbc:mysql://localhost/liuzj"
            userId="root" password="">
        </jdbcConnection>
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>
        <!-- 生成模型的包名和位置 -->
        <javaModelGenerator
            targetPackage="com.liuzj.mybatis.entity"
            targetProject="E:\\self-code\\mybatistest\\src\\main\\java">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <!-- 生成映射文件的包名和位置 -->
        <sqlMapGenerator
            targetPackage="mapper"            
            targetProject="E:\\self-code\\mybatistest\\src\\main\\resources">
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>

        <!-- 生成的Mapper接口的路径 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.liuzj.mybatis.mapper"
                             targetProject="E:\\self-code\\mybatistest\\src\\main\\java">
            <property name="enableSubPackages" value="true"/>
            <property name="rootClass" value="com.springboot.mybatis.demo.mapper.common.BaseMapper"/>
        </javaClientGenerator>

        <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名 -->
        <table tableName="person" domainObjectName="Person"
            enableCountByExample="false" enableUpdateByExample="false"
            enableDeleteByExample="false" enableSelectByExample="false"
            selectByExampleQueryId="false"></table>
    </context>

</generatorConfiguration>  

 注意此时驱动包无需再指定了

(3)找到对应Maven任务,点击执行即可:


3.逆向工程之Gradle集成

(1)在build.gradle配置文件中添加如下信息:

buildscript {
    repositories {
        mavenLocal()
        maven{ url \'http://maven.aliyun.com/nexus/content/groups/public/\'}
        jcenter()
    }
  // maven插件 dependencies { classpath "compile group: \'org.mybatis.generator\', name: \'mybatis-generator-maven-plugin\', version: \'1.3.0\'" } } // MyBatis代码自动生成工具 apply plugin: "com.arenagod.gradle.MybatisGenerator" configurations { mybatisGenerator } // 配置文件位置 mybatisGenerator { verbose = true configFile = \'src/main/resources/generatorConfig.xml\' }

(2)在 mybatisGenerator 配置中的位置创建generatorConfig配置文件,其详细配置和第一种方式一样、

(3)找到对应的gradle任务,点击执行即可

 


 四、IntellijIDE插件codehelper.generator自动生成代码

(1)安装插件

 

 (2)重启IDE

(3)根据实体类自动生成代码

 

 然后输入实体类名字

 

 点击OK即会生成三个文件

以上是关于Mybatis逆向工程之三种实现方法的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis教程之三—多参数的获取方式

开发工具:Mybatis.Plus.插件三种方式的逆向工程

文本挖掘之三种特征选择(python 实现)

mybatis实战教程(mybatis in action)之三:实现数据的增删改查

第862期成为一名函数式码农之三

mybatis之接口方法多参数的三种实现方式