mybatis-generator-core-1.3.2下載連接:https://github.com/mybatis/generator/releases java
如上圖所示,其lib目錄下包含三個jar包。mysql
在此,我使用的是mysql-connector-java-5.1.36-bin.jar,直接將該jar包拷到lib,目錄下git
此處須要本身新建一個xml文件,文件名隨意取,在此命名爲generatorConfig.xml,以此做爲配置文件。github
注:targetPackage是須要本身在lib目錄下新建的路徑。sql
<?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.36-bin.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/test" userId="root" password="root">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- 生成模型的包名和位置-->
<javaModelGenerator targetPackage="test.model" targetProject="src">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 生成映射文件的包名和位置-->
<sqlMapGenerator targetPackage="test.mapping" targetProject="src">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 生成DAO的包名和位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="test.dao" targetProject="src">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!-- 要生成哪些表-->
<table tableName="word_definition" domainObjectName="WordsEntity" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
</context>
</generatorConfiguration>
java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml -overwrite
如上圖所示,表示生成成功。shell
6.一、配置文件頭數據庫
<?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">
6.二、根節點<generatorConfiguration>api
根節點沒有任何屬性mybatis
包含如下子元素(有嚴格的順序):app
<properties> (0個或1個)
<classPathEntry> (0個或多個)
<context> (1個或多個)
6.2.一、properties元素
元素用於指定一個須要在配置中解析使用的外部屬性文件,引入屬性文件後,能夠在配置中使用 ${property}這種形式的引用,經過這種方式引用屬性文件中的屬性值。 對於後面須要配置的**jdbc信息**和targetProject屬性會頗有用。
這個屬性能夠經過resource或者url來指定屬性文件的位置,這兩個屬性只能使用其中一個來指定,同時出現會報錯。
resource:指定**classpath**下的屬性文件,使用相似com/myproject/generatorConfig.properties這樣的屬性值。
url:能夠指定文件系統上的特定位置,例如file:///C:/myfolder/generatorConfig.properties
6.2.三、classPathEntry元素
這個元素能夠0或多個,不受限制。
最多見的用法是經過這個屬性指定驅動的路徑,例如:
<classPathEntry location="mysql-connector-java-5.1.36-bin.jar"/>
注意,classPathEntry只在下面這兩種狀況下才有效:
當加載 JDBC 驅動內省數據庫時
當加載根類中的 JavaModelGenerator 檢查重寫的方法時
6.2.四、context元素
至少須要一個<context>元素
<context>元素用於指定生成一組對象的環境。例如指定要鏈接的數據庫,要生成對象的類型和要處理的數據庫中的表。運行MBG的時候還能夠指定要運行的<context>。
該元素只有一個**必選屬性**id,用來惟一肯定一個<context>元素,該id屬性能夠在運行MBG的使用。
此外還有幾個**可選屬性**:
defaultModelType
:**這個屬性很重要**,這個屬性定義了MBG如何生成**實體類**。
這個屬性有如下可選值:
conditional
:*這是默認值*,這個模型和下面的hierarchical
相似,除了若是那個單獨的類將只包含一個字段,將不會生成一個單獨的類。 所以,若是一個表的主鍵只有一個字段,那麼不會爲該字段生成單獨的實體類,會將該字段合併到基本實體類中。
flat
:該模型爲每一張表只生成一個實體類。這個實體類包含表中的全部字段。**這種模型最簡單,推薦使用。**
hierarchical
:若是表有主鍵,那麼該模型會產生一個單獨的主鍵實體類,若是表還有BLOB字段, 則會爲表生成一個包含全部BLOB字段的單獨的實體類,而後爲全部其餘的字段生成一個單獨的實體類。 MBG會在全部生成的實體類之間維護一個繼承關係。
targetRuntime
:此屬性用於指定生成的代碼的運行時環境。該屬性支持如下可選值:
MyBatis3
:*這是默認值*
MyBatis3Simple
Ibatis2Java2
Ibatis2Java5
通常狀況下使用默認值便可,有關這些值的具體做用以及區別請查看中文文檔的詳細內容。
introspectedColumnImpl
:該參數能夠指定擴展org.mybatis.generator.api.IntrospectedColumn
該類的實現類。
通常狀況下,咱們使用以下的配置便可:
<context id="Mysql" defaultModelType="flat">
若是你但願不生成和 Example 查詢有關的內容,那麼能夠按照以下進行配置:
<context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
6.2.五、context子元素
MBG配置中的其餘幾個元素,基本上都是<context>
的子元素,這些子元素(有嚴格的配置順序)包括:
<property>
(0個或多個)
<plugin>
(0個或多個)
<commentGenerator>
(0個或1個)
<jdbcConnection>
(1個)
<javaTypeResolver>
(0個或1個)
<javaModelGenerator>
(1個)
<sqlMapGenerator>
(0個或1個)
<javaClientGenerator>
(0個或1個)
<table>
(1個或多個)