# 資源
代碼生成器 MyBatis Generator(MBG)。官方文檔 http://www.mybatis.org/generator/。本書使用1.3.3版本。
# 5.1 XML配置詳解
MBG xml配置文件各個標簽詳解見書5.2 一個配置參考示例在項目的 src/main/resources 中創建一個 generator 目錄, 在該目錄下創建一個generatorConfig.xml文件, 文件內容如下:
```
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 加載屬性文件 -->
<properties resource="jdbc.properties">
</properties>
<settings>
<!-- 使用LOG4J打印日志 -->
<setting name="logImpl" value="LOG4J" />
<!-- 讓下劃線命名【數據庫中列名】方式可以和駝峰式命名方式【java類字段名】相互轉化, -->
<setting name="mapUnderscoreToCamelCase" value="true" />
<setting value="false" name="aggressiveLazyLoading" />
<setting name="cacheEnabled" value="true" />
</settings>
<typeAliases>
<!-- 可以直接使用java的類名 -->
<package name="tk.mybatis.simple.model" />
</typeAliases>
<!--自定義類型處理器-->
<typeHandlers>
<typeHandler javaType="tk.mybatis.simple.type.Enabled"
handler="tk.mybatis.simple.type.EnabledTypeHandler" />
</typeHandlers>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC">
<property name="" value="" />
</transactionManager>
<dataSource type="UNPOOLED">
<!-- ${}用來讀取屬性文件中的變量值 -->
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<!-- mapper.java和mapper.xml映射,文件路徑都相同 -->
<mappers>
<package name="tk.mybatis.simple.mapper" />
</mappers>
</configuration>
```
**1**context屬性targetRuntime設置為MyBatis3Simple, 主要是為了避生成與Example相關的代碼和方法, 如果需要Example相關的代碼, 也以設置為MyBatis3。
**2**.context 屬性 defaultModelType 設置為 flat, 目的是使每個表只成一個實體類, 當沒有復雜的類繼承時, 使用起來更方便。
**3**.因為此處使用的數據庫為MySQL, 所以前后分隔符都設置為“`”。
**4**.注釋生成器commentGenerator中配置了生成數據庫的注釋信息,并且禁止在注釋中生成日期。
**5**.jdbcConnection簡單地配置了要連接的數據源信息。
**6**.javaModelGenerator 配置生成的包名為 test.model, 這個包名可根據自己代碼的規范進行修改, targetProject設置在src\main\java中。
**7**sqlMapGenerator配置生成的Mapper.xml文件的位置, 這里的targetProject設置為src\main\resources
**8**javaClientGenerator 配置生成Mapper接口的位置, 這里采用XMLMAPPER類型, 接口和XML完全分離。
**9**最后的table使用通配符“%”匹配數據庫中所有的表, 所有表都有主鍵自增的id字段, sqlStatement針對當前數據庫配置MySQL。
# 5.3 運行MyBatis Generator
## 5.3.4 使用Eclipse插件運行
生成代碼的注釋中都有一個@mbggenerated標記, 這個標記的含義是, 被標記的這個字段或方法是自動生成的, 重新生成時會被覆蓋。 沒有這個標記的代碼不是自動生成的, 不會被覆蓋,原來自己寫的代碼和新生成的代碼合并。 除eclipse插件以外的方式方式在重新生成的時候, 這個標記沒有任何作用, 原來的文件被新生成的文件替代。插件使用步驟
**1**??5.3.4.1 安裝Eclipse插件
**2**? 修改 generator/generatorConfig.xml文件,如下圖:

**3**? 在和 targetProject 有關的相對路徑中需要增加當前的項目名稱, 將src\main\java 改為 simple\src\main\java, 將 src\main\resources改為simple\src\main\resources。
**4**.? 對generator/generatorConfig.xml右鍵單擊鼠標,如下圖 ,會自動生成代碼
