zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    css自适应浏览器大小
    javascript es6 箭头函数
    vue-router路由的使用
    vue-client脚手架使用
    springboot整合thymeleaf模板引擎
    SpringBoot不使用模板引擎直接返回html
    css加载动画
    java将数据从List转换Map
    KMP算法理解
    解决Linux服务器tomact-8.0启动慢的问题
  • 原文地址:https://www.cnblogs.com/javahr/p/8277020.html
Copyright © 2011-2022 走看看