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即會生成三個文件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM