mybatis generator逆向工程的生成

来源:互联网 发布:萧山人才网网络招聘 编辑:程序博客网 时间:2024/05/23 11:50
一前言
    前面已经将maven的一些基础的配置已经完成,接下来使用mybatis在maven里进行逆向工程导入.因为Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件,由于手动书写很容易出错,我们可以利用Mybatis Generator来帮我们自动生成文件

二准备工作

1.将该导入的包按照之前的规则通过pom.xml导入,但是mybatis generator所涉及到的包必须导入. 

 <!-- mybatis-gennerator 的jar -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.2</version>
</dependency>
2.访问http://www.mybatis.org/generator/这个官网,找到这个XML Configuration File Reference,中文意思为XML配置文件引用,如图所示  


 在maven工程里新建一个xml文档,将里面的这段代码coby到这个文档里   

<?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="DB2Tables" targetRuntime="MyBatis3">
<classPathEntry location="/Program Files/IBM/SQLLIB/java/db2java.zip" /> <jdbcConnection driverClass="COM.ibm.db2.jdbc.app.DB2Driver"
<property name="forceBigDecimals" value="false" />
connectionURL="jdbc:db2:TEST" userId="db2admin" password="db2admin"> </jdbcConnection> <javaTypeResolver > </javaTypeResolver>
<property name="trimStrings" value="true" />
<javaModelGenerator targetPackage="test.model" targetProject="\MBGTestProject\src"> <property name="enableSubPackages" value="true" /> </javaModelGenerator>
<javaClientGenerator type="XMLMAPPER" targetPackage="test.dao" targetProject="\MBGTestProject\src">
<sqlMapGenerator targetPackage="test.xml" targetProject="\MBGTestProject\src"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <property name="enableSubPackages" value="true" /> </javaClientGenerator>
<columnOverride column="DATE_FIELD" property="startDate" />
<table schema="DB2ADMIN" tableName="ALLTYPES" domainObjectName="Customer" > <property name="useActualColumnNames" value="true"/> <generatedKey column="ID" sqlStatement="DB2" identity="true" /> <ignoreColumn column="FRED" /> <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />
</generatorConfiguration>
</table>
</context>

3,修改里面的一系列参数,修改后的代码分析
<generatorConfiguration>
  <context id="DB2Tables" targetRuntime="MyBatis3">
     <!-- 设置是否生成注释 -->
   <commentGenerator>
 <property name="suppressAllComments" value="true" />
</commentGenerator>
  
  <!-- jdbc的连接 -->
    <jdbcConnection driverClass="com.mysql.jdbc.Driver"
        connectionURL="jdbc:mysql://localhost:3306/cms"
        userId="root"
        password="root">
    </jdbcConnection>

    <javaTypeResolver >
      <property name="forceBigDecimals" value="false" />
    </javaTypeResolver>

    <!-- 配置实体类所在的包 -->
    <javaModelGenerator targetPackage="com.eduask.chp.cms.bean" targetProject=".\src\main\java">
      <property name="enableSubPackages" value="true" />
      <property name="trimStrings" value="true" />
    </javaModelGenerator>

    <!-- 配置映射文件所在的目录 -->
    <sqlMapGenerator targetPackage="mapper"  targetProject=".\src\main\resources">
      <property name="enableSubPackages" value="true" />
    </sqlMapGenerator>
    <!-- 配置DAO的接口所在的目录 -->
    <javaClientGenerator type="XMLMAPPER" targetPackage="com.eduask.chp.cms.dao"  targetProject=".\src\main\java">
      <property name="enableSubPackages" value="true" />
    </javaClientGenerator>

    <!-- 配置表与实体类名字的对照关系 -->
    <table  tableName="emp" domainObjectName="Emp" >
    </table>
    <table  tableName="dept" domainObjectName="Dept" >
    </table>

  </context>
</generatorConfiguration>
 4.接下来要运行这些代码 在这个网站找到Running MyBatis Generator,中文意思为运行mybatis Generator 点进去我们的界面如下所示:  


右边个人选的是倒数第二个,翻译下为:从另一个Java程序和基于Java的配置 然后点进去你会找到如下的java运行代码: 
List warnings = new ArrayList();    
boolean overwrite = true;    
File configFile = new File("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); 
将这些源代码coby进你新建的class文件中,将里面的xml文件的地方改为你自己的xml文件就好 修改完的代码如下所示:          
List warnings = new ArrayList();  
boolean overwrite = true;   
File configFile = new File("mbg.xml");//这个是你之前配置generator的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); 
最后你会发现一些工程已经被逆向生成,bean,dao,与映射文件已被生成 写的匆忙,如若哪里不对或者有遗漏,欢迎指正.