使用Eclipse創建一個Java項目,結構以下:html
其中,GenMyBatis.java用於存放項目的main函數。GenTarget目錄下有三個子目錄mapper_java、mapper_xml、object_example_java。還有兩個配置文件database.properties。java
另外,項目還須要引用一個jar包:E:\jars\mybatis-generator-core-1.3.2.jar。這個包能夠從這個地址獲取:https://github.com/mybatis/generator/releasesgit
database.properties用於一些數據庫鏈接相關的配置。由於這部分配置變化的可能性較大,所以單獨放到一個文件中:github
classPath=E:/jars/mybatis-3.2.2/lib/ojdbc14-10.2.0.2.0.jar jdbc_driver=oracle.jdbc.driver.OracleDriver jdbc_url=jdbc:oracle:thin:@127.0.0.1:1521:orcl jdbc_user=這裏輸入用戶名 jdbc_password=這裏輸入密碼
generatorConfig.xml是MyBatisGenerator的配置文件,代碼以下: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> <!-- 基礎配置文件 --> <properties resource="database.properties"/> <!-- ojdbc14-10.2.0.2.0.jar 路徑 --> <classPathEntry location="${classPath}" /> <context id="oracleGenTest" targetRuntime="MyBatis3" > <commentGenerator> <property name="suppressDate" value="true" /> <property name="suppressAllComments" value="true" /> </commentGenerator> <jdbcConnection driverClass="${jdbc_driver}" connectionURL="${jdbc_url}" userId="${jdbc_user}" password="${jdbc_password}" /> <javaTypeResolver> <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- 生成對象和Example類相關配置 --> <javaModelGenerator targetPackage="GenTarget.object_example_java" targetProject="src"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- 生成mapper.xml相關配置 --> <sqlMapGenerator targetPackage="GenTarget.mapper_xml" targetProject="src"> <property name="enableSubPackages" value="false" /> </sqlMapGenerator> <!-- 生成mapper.java相關配置 --> <javaClientGenerator targetPackage="GenTarget.mapper_java" targetProject="src" type="XMLMAPPER"> <property name="enableSubPackages" value="false" /> </javaClientGenerator> <!-- 數據表 --> <table tableName="game_record"></table> </context> </generatorConfiguration>
完成上述配置後,就能夠開始着手寫java部分的代碼了。其中context下table條目中的tableName能夠指定要生成那些數據表的對象和mapper。使用通配符%能夠表明全部的字符,如info_%表明全部以「info_」開頭的表。數據庫
在 GenMyBatis.java 中鍵入如下代碼:api
package GenMyBatisTest; import java.io.File; import java.io.PrintWriter; import java.io.StringWriter; import java.util.ArrayList; import java.util.List; import org.mybatis.generator.api.MyBatisGenerator; import org.mybatis.generator.config.Configuration; import org.mybatis.generator.config.xml.ConfigurationParser; import org.mybatis.generator.internal.DefaultShellCallback; /** * MyBatisGenerator 學習 * @author Tsybius2014 * @date 2016年5月17日 * @time 下午11:58:21 * @remark */ public class GenMyBatis { public static void main(String[] args) { try { List<String> warnings = new ArrayList<String>(); boolean overwrite = true; File configFile = new File("src/generatorConfig.xml"); ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = cp.parseConfiguration(configFile); DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); myBatisGenerator.generate(null); System.out.println("done."); } catch (Exception ex) { StringWriter stringWriter = new StringWriter(); PrintWriter printWriter = new PrintWriter(stringWriter); ex.printStackTrace(printWriter); System.out.println(stringWriter.toString()); } } }
運行完畢後,便可看到效果:mybatis
其中GameRecordMapper.java的圖標有紅底×號標記,這是由於我沒有引用MyBatis相關的jar包,並非代碼生成的問題。oracle
MyBatis Generator 的在線幫助文檔參見: http://www.mybatis.org/generator/index.htmlapp
END