赞
踩
1、引入jar:mybatis-generator-core-1.3.1-bundle.zip
2、编写主类,程序入口:
- package mybatis;
-
- import java.io.File;
- import java.util.ArrayList;
- import java.util.List;
-
- import junit.framework.TestCase;
-
- 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;
-
- /**
- * mybatis反向工具,可以使用此生成所需代码。
- *
- * @author dongjian
- * */
- public class MyBatisGeneratorTest extends TestCase {
-
- private String confFilePath = "generatorConfig.xml";
-
- public final void testGenerator() throws Exception {
-
- List<String> warnings = new ArrayList<String>();
-
- confFilePath = this.getClass().getResource(confFilePath).getFile();
-
- File configFile = new File(confFilePath);
-
- Configuration config = new ConfigurationParser(warnings).parseConfiguration(configFile);
-
- DefaultShellCallback callback = new DefaultShellCallback(true);
-
- MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
-
- myBatisGenerator.generate(null);
- }
-
- }

- package mybatis.plugin;
-
- import java.util.List;
-
- import org.mybatis.generator.api.IntrospectedColumn;
- import org.mybatis.generator.api.IntrospectedTable;
- import org.mybatis.generator.api.dom.java.TopLevelClass;
- import org.mybatis.generator.plugins.EqualsHashCodePlugin;
-
- /**
- * 生成器插件,用于生成Equals和HashCode方法
- *
- * @author dongjian
- *
- */
- public class MyEqualsHashCodePlugin extends EqualsHashCodePlugin {
- @Override
- public boolean modelBaseRecordClassGenerated(TopLevelClass topLevelClass,
- IntrospectedTable introspectedTable) {
- return modelPrimaryKeyClassGenerated(topLevelClass, introspectedTable);
- }
-
- @Override
- public boolean modelPrimaryKeyClassGenerated(TopLevelClass topLevelClass,
- IntrospectedTable introspectedTable) {
- List<IntrospectedColumn> columns = introspectedTable.getPrimaryKeyColumns();
- if(columns == null || columns.size() == 0){
- columns = introspectedTable.getAllColumns();
- }
-
- generateEquals(topLevelClass, columns, introspectedTable);
- generateHashCode(topLevelClass, columns, introspectedTable);
-
- return true;
- }
-
- @Override
- public boolean modelRecordWithBLOBsClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
- return modelPrimaryKeyClassGenerated(topLevelClass, introspectedTable);
- }
- }

- <?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>
-
- <context id="tables" targetRuntime="MyBatis3">
- <plugin type="mybatis.plugin.MyEqualsHashCodePlugin"></plugin>
- <plugin type="org.mybatis.generator.plugins.SerializablePlugin"></plugin>
-
- <!-- import mapper -->
- <plugin type="org.mybatis.generator.plugins.MapperConfigPlugin">
- <property name="fileName" value="GeneratedMapperConfig.xml" />
- <property name="targetPackage" value="mapper" />
- <property name="targetProject" value="C:\code\resources\" />
- </plugin>
-
- <!-- 是否去除自动生成的注释 -->
- <commentGenerator>
- <property name="suppressAllComments" value="false" />
- <property name="suppressDate" value="false" />
- </commentGenerator>
-
- <!-- jdbc连接配置 -->
- <jdbcConnection driverClass="com.mysql.jdbc.Driver"
- connectionURL="jdbc:mysql://localhost:3306/dbname"
- userId="root" password="root">
- </jdbcConnection>
-
- <!-- java类型配置 -->
- <javaTypeResolver>
- <property name="forceBigDecimals" value="false" />
- </javaTypeResolver>
-
- <!-- generate Model -->
- <javaModelGenerator targetPackage="com.jd.spinsidesales.domain.po"
- targetProject="C:\code\java">
- <property name="enableSubPackages" value="true" />
- </javaModelGenerator>
-
- <!-- generate xml -->
- <sqlMapGenerator targetPackage="sqlmap.mybatis.mysql"
- targetProject="C:\code\resources\">
- <property name="enableSubPackages" value="true" />
- </sqlMapGenerator>
-
- <!-- generate dao -->
- <javaClientGenerator type="XMLMAPPER" targetPackage="com.jd.spinsidesales.dao"
- targetProject="C:\code\java">
- <property name="enableSubPackages" value="true" />
- </javaClientGenerator>
-
- <table tableName="approve_log" domainObjectName="ApproveLog"
- enableCountByExample="false" enableSelectByExample="false"
- enableDeleteByExample="false" enableUpdateByExample="false"></table>
-
- </context>
- </generatorConfiguration>

C:\code\resources\
C:\code\java
6、使用Junit运行MyBatisGeneratorTest类,您当然可以使用main方法来运行,这无关紧要,运行之后就可以看见生成的java类了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。