mybatis逆向工程总结工具类

  逆向工程字面意思就是反向生成工程,和hibernate一样mybatis也有自己的逆向工程工具,hibernate的逆向生成我没有做过,不过我猜大概都已样,再说,hibernate的现在使用很少了,到了使用的时候再去用吧,使用逆向工程时,需要注意的是表之间的关系无法映射出来!也就是说mybatis的逆向工程生成的都是单表操作。

 

一、mybatis逆向工程开发文档

  http://www.mybatis.org/generator/configreference/xmlconfig.html

 

二、下载mybatis逆向工程开发包

  下载jar包,mybatis-generator-core-1.3.2.jar 以及相应的数据库驱动包,文章底部将给出源码和核心包

 

三、生成代码配置文件

<?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="D:/workspace/myeclipse_workspae/GeneratorJavaTool/lib/mysql-connector-java-5.1.32.jar" />
  <!-- <classPathEntry location="D:/workspace/myeclipse_workspae/GeneratorJavaTool/lib/ojdbc6.jar" /> -->
  
  
  <!-- targetRuntime 可选项,可填值为MyBatis3,MyBatis3Simple(默认的),Ibatis2Java2,Ibatis2Java5 -->
  <context id="testTables" targetRuntime="MyBatis3">
  
          <!-- JavaBean 实现 序列化 接口 -->
        <plugin type="org.mybatis.generator.plugins.SerializablePlugin"/>
    
        <!-- genenat entity时,生成toString -->
         <plugin type="org.mybatis.generator.plugins.ToStringPlugin" />
     
          <!-- 规定代码上面的注释规则 -->  
        <commentGenerator>  
            <!-- 是否去除自动生成的注释 true:是(关闭注释) : false:否 (打开注释)-->
              <property name="suppressAllComments" value="true" />  
              <!-- 是否打开时间标志 true:关闭时间注释 : false:打开时间注释 -->
              <property name="suppressDate" value="true" />  
        </commentGenerator> 
    
        <!-- jdbc配置:数据库连接(mysql) -->  
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
            connectionURL="jdbc:mysql://localhost:3306/qiyuanshop"
            userId="root"
            password="111">
        </jdbcConnection>
        <!-- jdbc配置:数据库连接(Oracle) -->  
        <!-- <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"
            connectionURL="jdbc:oracle:thin:@localhost:1521:orcl"
            userId="oa"
            password="oa">
        </jdbcConnection> -->
    
        <!-- mybatis里专门用来处理NUMERIC和DECIMAL类型的策略 -->
        <javaTypeResolver >
              <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>
    
        <!-- 实体类生成配置:数据表对应的model 层 (生成po类的位置) --> 
        <javaModelGenerator targetPackage="com.qiyuan.bean" targetProject=".\src">
              <!-- enableSubPackages:是否让schema作为包的后缀 -->
              <property name="enableSubPackages" value="false" />
              <!-- 从数据库返回的值被清理前后的空格 -->
              <property name="trimStrings" value="true" />
        </javaModelGenerator>
    
        <!-- 生成sql语句的xml文件:sql mapper 隐射配置文件(映射文件生成的位置) -->
        <sqlMapGenerator targetPackage="com.qiyuan.mapper"  targetProject=".\src">
              <!-- enableSubPackages:是否让schema作为包的后缀 -->
              <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>
    
        <!-- mapper生成配置:在ibatis2 中是dao层,但在mybatis3中,其实就是mapper接口 --> 
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.qiyuan.mapper"  targetProject=".\src">
              <property name="enableSubPackages" value="false" />
        </javaClientGenerator>
    
        <!-- 要对那些数据表进行生成操作,必须要有一个. -->
        <!-- <table tableName="taddress"></table> -->
        <table tableName="t_analystic" domainObjectName="TAnalystic" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
   
      </context>
      
</generatorConfiguration>
View Code

 

四、准备Java程序

  开发文档中有,直接粘过去

import java.io.File;
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;


public class GeneratorSqlMap {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

           List<String> warnings = new ArrayList<String>();
           boolean overwrite = true;
           //指向逆向工程的配置文件(项目根路径不要有中文,如果有的话建议使用绝对路径)
           File configFile = new File("generatorConfig.xml");
           ConfigurationParser cp = new ConfigurationParser(warnings);
           MyBatisGenerator myBatisGenerator = null;
            try {
                   Configuration config = cp.parseConfiguration(configFile);
                   DefaultShellCallback callback = new DefaultShellCallback(overwrite);
                    myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
                    myBatisGenerator.generate(null);
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

    }

}
View Code

 

五、运行四种的Java文件代码

  项目结构如下:

 

 项目资料链接:链接:https://pan.baidu.com/s/1o9NN0gU 密码:jll2

posted @ 2018-01-12 17:45  沧海一粟hr  阅读(1190)  评论(0编辑  收藏  举报