1. 程式人生 > >Mybatis使用Generator自動生成器的配置及使用

Mybatis使用Generator自動生成器的配置及使用

使用的是IDEA,spring boot.maven.

首先在 pop.xml 中匯入依賴

<dependency>
     <groupId>org.mybatis.spring.boot</groupId>
     <artifactId>mybatis-spring-boot-starter</artifactId>
     <version>1.3.2</version>
</dependency>

<build>

   <plugins>

      <!-- mybatis generator 自動生成程式碼外掛 -->
      <plugin>
          <groupId>org.mybatis.generator</groupId>
          <artifactId>mybatis-generator-maven-plugin</artifactId>
          <version>1.3.6</version>
          <configuration>
         <configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile>
                    <overwrite>true</overwrite>
                    <verbose>true</verbose>
          </configuration>
      </plugin>
   
    </plugins>

</build>

pom.xml 檔案設定的對應目錄下建立 generatorConfig.xml 檔案(maven外掛執行配置時,檔名只能固定寫為generatorConfig,檔案中要配置資料庫 <classPathEntry> 連線驅動絕對路徑,並且,資料庫連線資訊url,username,password等都要寫固定)

<?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>

    <!--別名,可以將重複的程式碼,比如路徑用別名代替-->
    <!--    <typeAliases>
            <typeAlias alias="packagePath" type="com.demo.demosubject"/>
        </typeAliases>-->

    <!--指定資料庫驅動路徑-->
    <classPathEntry
            location="C:\Users\24564\.m2\repository\mysql\mysql-connector-java\5.1.45\mysql-connector-java-5.1.45.jar"/>
            
    <context id="familydb" defaultModelType="flat" targetRuntime="MyBatis3">

        <!--註解配置-->
        <commentGenerator>
            <!--是否生成預設註解,true,是;false,否-->
            <property name="suppressAllComments" value="true"/>
            <!--生成的註解是否包含時間戳,true,是;false,否-->
            <property name="suppressDate" value="true"/>
        </commentGenerator>

        <!--連線資料庫-->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://www.demo.com:3306/databasename?characterEncoding=utf-8"
                        userId="admin" password="123456">
        </jdbcConnection>

        <!--指定JDBC型別和Java型別轉換. 預設false,把JDBC DECIMAL 和 NUMERIC 型別解析為 Integer    
            true,把JDBC DECIMAL 和 NUMERIC 型別解析為java.math.BigDecimal-->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>

        <!-- java模型建立器
        targetPackage:生成的類要放的包,真實的包受enableSubPackages屬性控制;
        targetProject:目標專案,指定一個存在的目錄下,生成的內容會放到指定目錄中,如果目錄不存在,MBG不會自動建目錄
     -->
        <!--生成model模型-->
        <javaModelGenerator targetPackage="packagePath.entity" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
            <!--資料庫返回的值清理,去除前後空格-->
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>

        <!--生成對應的對映mapper.xml檔案-->
        <sqlMapGenerator targetPackage="mapping" targetProject="src/main/resources">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>

        <!--生成Mapper介面-->
        <javaClientGenerator type="XMLMAPPER" targetPackage="packagePath.dao"
                             targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>


        <!--列出將要執行操作的表-->
        <table tableName="user" domainObjectName="User" enableCountByExample="false"
               enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false"
               selectByExampleQueryId="false"/>

    </context>

</generatorConfiguration>

在Intellij IDEA新增一個“Run執行”選項,使用maven執行mybatis-generator-maven-plugin外掛 

彈出執行配置框,為當前配置配置一個Name,這裡命名為"generator",然後在 “Command line” 選項中輸入“mybatis-generator:generate  -e”,這裡加了“-e ”選項是為了讓該外掛輸出詳細資訊,這樣可以幫助我們定位可能出現的問題.

最後點選Apply,如果新增成功

就會有剛才新增的 generator 選項.然後執行即可生成程式碼

也可以在這裡執行

 

還有一種方法是寫main方法執行
  1.在pom.xml中加入外掛依賴:
  2.寫mbgConfiguration.xml檔案,jdbc.properties檔案
  3.寫/src/main/java/main/DemoMain.java main方法
  4.執行main函式

這樣配置比較靈活,不需要寫死資料庫驅動地址和連線資訊,不需要多加一個jar外掛。