pom.xml 注入構(gòu)建插件
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.0</version>
<dependencies>
<!-- mysql連接驅(qū)動 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.40</version>
</dependency>
</dependencies>
<configuration>
<verbose>true</verbose>
<outputDirectory>src/main/java</outputDirectory>
<overwrite>true</overwrite>
<configurationFile>${basedir}/src/test/resources/generatorConfig.xml</configurationFile>
</configuration>
</plugin>
逆向工程配置文件
<?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>
<context id="users-dao">
<!--是否生成注釋-->
<commentGenerator>
<property name="suppressDate" value="true"/>
</commentGenerator>
<jdbcConnection userId="root" password="123"
driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://127.0.0.1:3306/xtyr?charsetEncoding=utf8">
</jdbcConnection>
<javaModelGenerator targetPackage="cn.gduf.xtyr.modules.users.entity.gen"
targetProject="MAVEN">
<!-- enableSubPackages:是否讓schema作為包的后綴 -->
<property name="enableSubPackages" value="false"/>
<!-- 從數(shù)據(jù)庫返回的值被清理前后的空格 -->
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<sqlMapGenerator targetPackage="cn.gduf.xtyr.modules.users.dao.gen"
targetProject="MAVEN"></sqlMapGenerator>
<javaClientGenerator type="XMLMAPPER"
targetPackage="cn.gduf.xtyr.modules.users.dao.gen" targetProject="MAVEN">
<!-- enableSubPackages:是否讓schema作為包的后綴 -->
<property name="enableSubPackages" value="false"/>
</javaClientGenerator>
<table tableName="department"></table>
<table tableName="roles"></table>
<table tableName="user_role"></table>
<table tableName="users"></table>
</context>
</generatorConfiguration>
構(gòu)建命令
可以在命令行通過以下命令執(zhí)行:
- mvn mybatis-generator:generate
您可以通過標(biāo)準(zhǔn)的Maven命令屬性傳遞參數(shù)再悼, 例如: - mvn -Dmybatis.generator.overwrite=true mybatis-generator:generate
參考參數(shù)
所有的參數(shù)都是可選的,大部分都適合的默認(rèn)值论巍。
參數(shù) | 表達(dá)式 | 類型 | 注釋 |
---|---|---|---|
configurationFile | ${mybatis.generator.configurationFile} | java.io.File | 指定配置文件的名稱檐迟。默認(rèn)值:${basedir}/src/main/resources/generatorConfig.xml |
contexts | ${mybatis.generator.contexts} | java.lang.String | 如果指定了該參數(shù)净赴,逗號隔開的這些context會被執(zhí)行。 這些指定的context必須和配置文件中 <context> 元素的 id屬性一致。 只有指定的這些contextid會被激活執(zhí)行蚂会。如果沒有指定該參數(shù)转捕,所有的context都會被激活執(zhí)行作岖。 |
jdbcDriver | ${mybatis.generator.jdbcDriver} | java.lang.String | 如果您指定了 sqlScript 參數(shù), 當(dāng)連接數(shù)據(jù)庫時這里的值是JDBC驅(qū)動類的權(quán)限定名稱。 |
jdbcPassword | ${mybatis.generator.jdbcPassword} | java.lang.String | 如果您指定了 sqlScript 參數(shù), 這是連接數(shù)據(jù)庫的密碼五芝。 |
jdbcURL | ${mybatis.generator.jdbcURL} | java.lang.String | 如果您指定了 sqlScript 參數(shù), 這是連接數(shù)據(jù)庫的JDBC URL |
jdbcUserId | ${mybatis.generator.jdbcUserId} | java.lang.String | 如果您指定了 sqlScript 參數(shù), 這里是連接數(shù)據(jù)庫的用戶id |
outputDirectory | ${mybatis.generator.outputDirectory} | java.io.File | 將放置 MBG 所生成文件的目錄痘儡。 這個目錄是用于當(dāng) targetProject 在配置文件中設(shè)置特殊值的"MAVEN"時使用(大小寫敏感)。默認(rèn)值:${project.build.directory}/generated-sources/mybatis-generator |
overwrite | ${mybatis.generator.overwrite} | boolean | 如果指定了該參數(shù)枢步,如果生成的java文件存在已經(jīng)同名的文件沉删,新生成的文件會覆蓋原有的文件。 如果沒有指定該參數(shù)醉途,如果存在同名的文件矾瑰,MBG會給新生成的代碼文件生成一個唯一的名字(例如: MyClass.java.1, MyClass.java.2 等等)。 重要: 生成器一定會自動合并或覆蓋已經(jīng)生成的XML文件隘擎。默認(rèn)值:false |
sqlScript | ${mybatis.generator.sqlScript} | java.lang.String | 要在生成代碼之前運(yùn)行的 SQL 腳本文件的位置殴穴。 如果空,不會執(zhí)行任何腳本。 如果不是空采幌,jdbcDriver,jdbcURL 參數(shù)必須提供劲够。 另外如果連接數(shù)據(jù)庫需要認(rèn)證也需要提供 jdbcUserId 和 jdbcPassword 參數(shù)。值可以使一個文件系統(tǒng)的絕對路徑或者是一個使用"classpath:"開頭放在構(gòu)建的類路徑下的路徑休傍。 |
tableNames | ${mybatis.generator.tableNames} | java.lang.String | 如果指定了該參數(shù)征绎,逗號隔開的這個表會被運(yùn)行, 這些表名必須和 <table> 配置中的表面完全一致磨取。只有指定的這些表會被執(zhí)行人柿。 如果沒有指定該參數(shù),所有的表都會被執(zhí)行忙厌。 按如下方式指定表明: tableschema.tablecatalog..table等等凫岖。 |
verbose | ${mybatis.generator.verbose} | boolean | 如果指定該參數(shù),執(zhí)行過程會輸出到控制臺慰毅。 |
targetProject 解釋
與Maven運(yùn)行時 生成器 配置的 targetProject 屬性有不同的解釋隘截。 如果指定值為"MAVEN" (大小寫敏感), targetProject 將被設(shè)置為插件的輸出目錄,而且如果不存在這個目錄汹胃,將會創(chuàng)建這個目錄婶芭。 如果沒有設(shè)置為 "MAVEN", 那么targetProject 將會被 MGB 當(dāng)成普通的 - 它必須是一個已經(jīng)存在的目錄。