Maven項目下的Mybatis逆向工程

IDEA Maven項目的Mybatis逆向工程

1.配置.pom

如果是在多模塊開發下,該文件逆向工程要生成的那個模塊下的pom文件。
以下配置在<build>下級,與<pluginManagement>同級

<build>
        <plugins>
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.5</version>
                <configuration>
                    <verbose>true</verbose>
                    <overwrite>true</overwrite>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>5.1.45</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>

2.在項目根目錄下新建generatorConfig.xml文件

如果是在多模塊開發下,該文件逆向工程要生成的那個模塊下的根目錄下(src\main\resourse)。

下面是官方文檔提供的參考文件:

具體配置見 4.[配置文件詳解]

<?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-connector-java 此處可省略 -->
    <!--  <classPathEntry location="/Program Files/IBM/SQLLIB/java/db2java.zip" />-->

    <context id="DB2Tables" targetRuntime="MyBatis3">
        <commentGenerator>
            <property name="suppressDate" value="true"/>
            <!-- 是否去除自動生成的註釋 true:是 false:否 -->
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <!-- 數據庫連接驅動、url、用戶名、密碼 -->
        <!-- 參考jdbc.properties -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/demo
                        userId="root"
                        password="root">
        </jdbcConnection>

        <javaTypeResolver>
            <property name="forceBigDecimals" value="true"/>
        </javaTypeResolver>
        <!-- 生成的java模型的 包名和位置  -->
        <javaModelGenerator targetPackage="com.demo.entity" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!-- 生成的xml映射文件的 包名和位置   不寫此項不會生成xml文件-->
        <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </sqlMapGenerator>
        <!-- 生成的Dao接口的 包名和位置   不寫此項不會成成dao層接口-->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.demo.dao" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>

        <!-- 需要生成實體類的表 tableName是數據庫的表名或視圖名,domainObjectName是生成後的類名  -->
        <table schema="DB2ADMIN" tableName="tablename" domainObjectName="classname">
            <property name="useActualColumnNames" value="false"/>
            <generatedKey column="ID" sqlStatement="DB2" identity="true"/>
            <columnOverride column="DATE_FIELD" property="startDate"/>
            <ignoreColumn column="FRED"/>
            <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR"/>
        </table>
    </context>
</generatorConfiguration>

3.運行mybatis配置文件

點擊右側的Maven->項目名->plugin->mybatis-generator運行即可;

還可以通過以下方式命令運行;
在這裏插入圖片描述

  • 選擇右上角運行按鈕旁邊的三角,選擇Edit Configurations
    在這裏插入圖片描述
  1. 點擊+號選擇maven
  2. 自定義name
  3. 選擇項目路徑
  4. 輸入逆向工程的命令 mybatis-generator:generate -e

4.注: 配置文件詳解

  • <classPathEntry>

    在pom文件中加入

    <dependency> ​ <groupId>mysql</groupId> ​ <artifactId>mysql-connector-java</artifactId> ​ <version>5.1.45</version> </dependency>

    依賴後可省略;

  • <context>

    id:逆向工程的唯一標識,此值可以被應用到一些錯誤信息;

    targetRuntime:此屬性用於指定生成的代碼的運行時目標。常見值爲Mybatis3,Mybatis3Simple等。

  • <jdbcConnection>

    數據庫連接信息,可參考數據庫的配置文件db.properties。

  • <javaTypeResolver>(非必須)

    該標籤是用來定義java類型解析器的屬性,java類型解析器是用於轉換從數據庫列名的類型對應的java類型。

  • <javaModelGenerator>

    該標籤決定逆向工程生成實體的位置。

    targetPackage決定生成在哪個包下,默認存放在src目錄下;(com.test.entity)

    targetProject決定生成到的目標工程;(.\src\main\java)

    enableSubPackages:是否放schema作爲包的後綴;(false)

    trimString:從數據庫返回的值是否刪除前後的空格;

  • <sqlMapGenerator>

    生成XxxMapper.xml文件的位置,類似<javaModelGenerator>

    targetPackage決定生成在哪個包下;(mappers)

    targetProject決定生成到的目標工程;(.\src\main\resourse)

    enableSubPackages:是否放schema作爲包的後綴;(false)

  • <javaClientGenerator>

    生成XxxMapper接口文件的位置,類似<javaModelGenerator>

    targetPackage決定生成在哪個包下;(com.test.dao)

    targetProject決定生成到的目標工程;(.\src\main\java)

    enableSubPackages:是否放schema作爲包的後綴;(false)

    • 注意:在配置生成實體類,mapper接口,mapper.xml配置文件的位置時,如果要生成到不同的模塊中,或者有找不到文件位置時,可以採用完整路徑的方式。
  • <table>

    schema:不用填寫;

    tableName:表名;

    domainObjectName:自動生成的實體文件名;


5.官方文檔提供的其他功能

mybatis逆向工程在官方文檔具有非常詳細的解釋,包括對生成文件內容的定義,可以去掉註釋,取消生成mapper文件自動生成的增刪改查等。

官方文檔地址:http://www.mybatis.org/generator/

  • 去註釋:(context下)

    是否去除所有自動生成文件的註釋:

    <commentGenerator>
    	<!-- 是否去除所有自動生成的文件的時間戳:-->
      <property name="suppressDate" value="false"/>
    	<!-- 是否去除所有自動生成文件的註釋:-->
      <property name="suppressAllComments" value="true"/>
    </commentGenerator>
    
  • 去掉實體文件下的Example實體類文件。

    <table tableName="user"
            enableCountByExample="false"
            enableUpdateByExample="false"
            enableDeleteByExample="false"
            enableSelectByExample="false"
            selectByExampleQueryId="false">
    </table>
    

    官方文檔還有很多功能,可以進入官方文檔頁面查看。
    http://www.mybatis.org/generator/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章