使用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