zoukankan      html  css  js  c++  java
  • Mybatis自动生成实体类和实体映射工具

    Mybatis Mysql生成实体类

    用到的Lib包:

    mybatis-generator-core-1.3.2.jar
    mysql-connector-java-5.1.30.jar

    1. 创建一个文件generator.properties, 主要用于配置相关路径和数据库信息。

    #工程src路径  
    project = D:/project/
    #工程存放mapper.xml路径  
    resource = D:/project/
    #指定数据连接驱动jar地址  
    classPath=D:/project/mysql-connector-java-5.1.30.jar
    jdbc_driver=com.mysql.jdbc.Driver
    jdbc_url=jdbc:mysql://localhost:3306/mzq_test
    jdbc_user=root
    jdbc_password=  

    2. 创建一个配置文件 generatorConfig.xml,  Mybatis相关配置。

     

    <?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="generator.properties"/>
          
        <!-- 指定数据连接驱动jar地址 -->  
        <classPathEntry location="${classPath}" />  
          
        <!-- 一个数据库一个context -->  
        <context id="infoGuardian" targetRuntime="MyBatis3">  
            <!-- 注释 -->  
            <commentGenerator >  
                <property name="suppressAllComments" value="true"/><!-- 是否取消注释 -->  
                <property name="suppressDate" value="true" /> <!-- 是否生成注释代时间戳-->  
            </commentGenerator>  
              
            <!-- jdbc连接 -->  
            <jdbcConnection driverClass="${jdbc_driver}"
                connectionURL="${jdbc_url}" userId="${jdbc_user}"
                password="" />
              
            <!-- 类型转换 -->  
            <javaTypeResolver>  
                <!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) -->  
                <property name="forceBigDecimals" value="false"/>  
            </javaTypeResolver>  
              
            <!-- 生成实体类地址 -->    
            <javaModelGenerator targetPackage="com.test.pojo"
                targetProject="${project}" >  
                <!-- 是否在当前路径下新加一层schema,eg:fase路径com.test.domain", true:com..test.domain".[schemaName] -->  
                <property name="enableSubPackages" value="false"/>  
                <!-- 是否针对string类型的字段在set的时候进行trim调用 -->  
                <property name="trimStrings" value="true"/>  
            </javaModelGenerator>  
              
            <!-- 生成mapxml文件 -->  
            <sqlMapGenerator targetPackage="com.test.dao.mapping"
                targetProject="${resource}" >  
                <!-- 是否在当前路径下新加一层schema,eg:fase路径com.test.domain", true:com..test.domain".[schemaName] --> 
                <property name="enableSubPackages" value="false" />  
            </sqlMapGenerator>  
              
            <!-- 生成mapxml对应client,也就是接口dao -->      
            <javaClientGenerator targetPackage="com.test.dao"  
                targetProject="${project}" type="XMLMAPPER" >  
                <!-- 是否在当前路径下新加一层schema,eg:fase路径com.test.domain", true:com..test.domain".[schemaName] --> 
                <property name="enableSubPackages" value="false" />  
            </javaClientGenerator>  
              
            <!-- 配置表信息,这里没生成一张表,这里需要改变一次对应表名 -->    
            <table schema="mzq_test" tableName="zte_order"
                domainObjectName="ZteOrder" enableCountByExample="false"
                enableDeleteByExample="false" enableSelectByExample="false"  
                enableUpdateByExample="false">  
                <!-- schema即为数据库名 tableName为对应的数据库表 domainObjectName是要生成的实体类 enable*ByExample   
                    是否生成 example类   -->  
                  
                <!-- 忽略列,不生成bean 字段   
                <ignoreColumn column="FRED" />-->  
                <!-- 指定列的java数据类型   
                <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />-->  
            </table>  
      
        </context>  
    </generatorConfiguration>  

    3. 写一个可以执行的generatorMain类来生成实体类。

    import java.io.File;
    import java.io.IOException;
    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.exception.XMLParserException;
    import org.mybatis.generator.internal.DefaultShellCallback;
    
    public class GeneratorMain {
        public static void main(String[] args) {
            List<String> warnings = new ArrayList<String>();
            boolean overwrite = true;
            //读取配置文件  
            File configFile = new File("src/generatorConfig.xml");
            ConfigurationParser cp = new ConfigurationParser(warnings);
            Configuration config;
            try {
                config = cp.parseConfiguration(configFile);
    
                DefaultShellCallback callback = new DefaultShellCallback(overwrite);
                MyBatisGenerator myBatisGenerator;
                try {
                    myBatisGenerator = new MyBatisGenerator(config, callback,
                            warnings);
                    myBatisGenerator.generate(null);
    
                    //打印结果  
                    for(String str : warnings){
                        System.out.println(str);
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
    
            } catch (IOException e) {
                e.printStackTrace();
            } catch (XMLParserException e) {
                e.printStackTrace();
            }
        }
    }  
    

     大功告成:

    gitHub地址: https://github.com/owenma/mybatis-tools

    如果觉得有疑问或者对你有帮助 欢迎评论。

    作者:森林木马

    出处:http://www.cnblogs.com/owenma/p/7290520.html 

     如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意 

    转载文章之后必须在 文章页面明显位置给出作者和原文连接否则保留追究法律责任的权利。

  • 相关阅读:
    Jenkins 构建后生成的HTML报告,无法导入js/css文件问题
    持续集成:API自动化 + Jenkins定时构建
    Jenkins 的安装与基础配置
    浏览器兼容性测试
    测试过程中bug缺陷的定义、bug类型、bug等级、bug生命周期、bug管理流程、bug状态处理
    常用四种用例设计方法
    软件测试工作流程图、软件测试的基本流程、软件开发流程、测试流程梳理
    软件的生命周期:瀑布型、V模型、敏捷开发模型生命周期;软件测试各阶段工作内容
    软件测试的分类、软件测试分类的说明、软件测试常见的误区
    java应用cpu使用率过高问题排查
  • 原文地址:https://www.cnblogs.com/owenma/p/7290520.html
Copyright © 2011-2022 走看看