雖然MyBatis很方便,但是想要手寫全部的mapper還是很累人的,好在MyBatis官方推出了自動化工具,可以根據數據庫和定義好的配置直接生成DAO層及以下的全部代碼,非常方便.
需要注意的是,雖然自動化工具需要一個配置文件,但是MyBatis的配置文件仍然不能少,自動化工具的配置文件用於對生成的代碼的選項進行配置,MyBatis的配置文件才是運行時的主要配置文件.
這個工具叫做MyBatis_Generator,不過比較扯淡的是官方雖然推出了這個工具,不過在google code上面看到的工具僅僅是一個jar包而已,在用這個工具的時候需要在cmd下面執行命令才能根據配置文件生成所需的各種文件,下面是該jar的下載 地址:
http://mybatis.googlecode.com/files/mybatis-generator-core-1.3.1-bundle.zip
后來我仔細挖掘了Google Code上的東西,發現官方提供的也有可以直接安裝到Eclipse里面的插件,唯一讓人不爽的是這個插件只能安裝在Eclipse3.6以上的版本,目 前大部分人用的都是3.5.2或者更低的版本,給個地址吧,想方便點的可以試試,請確認你的eclipse的版本或者Myeclipse所用的 eclipse版本是3.6以上的,否則無法安裝,下面是eclipse更新地址:
http://mybatis.googlecode.com/svn/sub-projects/generator/trunk/eclipse/UpdateSite/
下面我要說的是針對cmd下操作的方法,插件操作方法超級簡單和abator(ibatis 2.X的插件)的使用方法一樣.
在類路徑下面建立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> <!-- 數據庫驅動包 --> <classPathEntry location="jdbcdriver/mysql-connector-java-5.1.6.jar" /> <context id="aisSnsTables" targetRuntime="Ibatis2Java5"> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://10.20.144.15:3306/Incorrupt?useUnicode=true" userId="root" password="111111"> </jdbcConnection> <javaTypeResolver> <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- 生成vo對象 --> <javaModelGenerator targetPackage="com.alibaba.webx.tutorial1.app1.vo" targetProject="../src/main/java"> <property name="enableSubPackages" value="false" /> <property name="trimStrings" value="false" /> </javaModelGenerator> <!-- 生成用於查詢的Example對象 --> <sqlMapGenerator targetPackage="database/sqlmap/map" targetProject="../src/main/resources"> <property name="enableSubPackages" value="false" /> </sqlMapGenerator> <!-- 生成DAO的類文件以及配置文件 --> <javaClientGenerator type="SPRING" targetPackage="com.alibaba.webx.tutorial1.app1.dao" implementationPackage="com.alibaba.webx.tutorial1.app1.dao.impl" targetProject="../src/main/java"> <property name="enableSubPackages" value="false" /> </javaClientGenerator> <!-- 想要生成的數據庫表,自動化工具會根據該表的結構生成相應的vo對象 --> <table tableName="t_user" domainObjectName="User"></table> </context> </generatorConfiguration>
需要注意的是上面的targetProject此處應寫成文件路徑的形式,而不是項目路徑,指定類文件生成到src的org.qiuqiu.vo包下面,如果是用插件的話targetProject直接寫項目名稱即可,比如直接寫MyBatis_Generator.
上面我僅僅簡單的寫了些注釋,稍后我會將詳細的配置選項以附件的形式發上來
然后就開始要生成文件了,打開cmd,進入項目路徑的lib下面,也就是含有mybatis-generator-core-1.3.1.jar文件的目錄中,執行以下命令:
- java -jar mybatis-generator-core-1.3.1.jar -configfile ../src/generatorConfig.xml -overwrite
OK了,刷新一遍目錄,可以看到vo,dao,xml全都自動生成了.
附件中有一個示例項目已經含有了所需要的全部包,
另一個附件是配置選項的官方說明文檔
再奉上一個MyBatis的官方eclipse插件,可以安裝在eclipse3.6版本以上