雖然MyBatis很方便,但是想要手寫全部的mapper還是很累人的,好在MyBatis官方推出了自動化工具,可以根據數據庫和定義好的配置直接生成DAO層及以下的全部代碼,非常方便.
需要注意的是,雖然自動化工具需要一個配置文件,但是MyBatis的配置文件仍然不能少,自動化工具的配置文件用於對生成的代碼的選項進行配置,MyBatis的配置文件纔是運行時的主要配置文件.
在類路徑下面建立generatorConfig.xml文件,這個文件配置各種生成選項,
<?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驅動路徑 -->
<classPathEntry location="C:\Users\lscm\.m2\repository\mysql\mysql-connector-java\5.1.35\mysql-connector-java-5.1.35.jar" />
<!-- 此處指定生成針對MyBatis3的DAO -->
<context id="Mysql" targetRuntime="MyBatis3">
<!-- 需求特殊轉換使用可以增加相應的plugin -->
<plugin type="org.mybatis.generator.plugins.SerializablePlugin" />
<!-- jdbc連接信息 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://172.16.18.172:3306/paytest" userId="root" password="root" />
<!-- 生成vo對象 -->
<javaModelGenerator targetPackage="com.nextxworkroom.payment.gateway.model" targetProject="src/main/java" />
<!-- 生成用於查詢的Example對象 -->
<sqlMapGenerator targetPackage="com.nextxworkroom.payment.gateway.dao.mapper" targetProject="src/main/java" />
<!-- 生成DAO的類文件以及配置文件 -->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.nextxworkroom.payment.gateway.dao.mapper" targetProject="src/main/java" />
<!-- 想要生成的數據庫表,自動化工具會根據該表的結構生成相應的vo對象 -->
<table schema="payGateway" tableName="T_PAYMENT_ORDER" domainObjectName="PaymentOrder" />
</context>
</generatorConfiguration>
需要注意的是上面的targetProject此處應寫成文件路徑的形式,而不是項目路徑,指定類文件生成到src/main/java的
com.nextxworkroom.payment.gateway.model
包下面,如果是用插件的話targetProject直接寫項目名稱即可,比如直接寫MyBatis_Generator.
上面我僅僅簡單的寫了些註釋,稍後我會將詳細的配置選項以附件的形式發上來
java -jar mybatis-generator-core-1.3.1.jar -configfile ../src/generatorConfig.xml -overwrite
後續我們還會怎樣增加一些特殊處理方案,如更新時間,targetProject相關目錄優化等....
請參考我這邊相關github相關項目:https://github.com/nf25tod/mybatis-generator.git