1. 程式人生 > >Mybatis逆向工程之三種實現方法

Mybatis逆向工程之三種實現方法

ntb roo obj tar ges detail 是否 href rip

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任務,點擊執行即可

技術分享圖片


總結:以上方式雖然已經很簡潔了,但是能不能將其集成到Spring中去呢?以一個Bean的形式省去繁瑣的配置,希望廣大園友留言

Mybatis逆向工程之三種實現方法