码迷,mamicode.com
首页 > 其他好文 > 详细

Mybatis自动生成实体类和实体映射工具

时间:2017-08-05 16:43:43      阅读:902      评论:0      收藏:0      [点我收藏+]

标签:back   div   call   contex   引入   路径   void   style   integer   

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 

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

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

 

Mybatis自动生成实体类和实体映射工具

标签:back   div   call   contex   引入   路径   void   style   integer   

原文地址:http://www.cnblogs.com/owenma/p/7290520.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!