使用mybatis自带工具,自动生成表对应domain、mapper.xml以及dao

引用:http://blog.csdn.net/p793049488/article/details/40422975

1、需要手动建表,如T_PRI_USER

2、新建配置文件generator.properties:

  1. #工程src路径  
  2. project = E:/java/eclipseVillage/icity-yuntv/src  
  3. #工程存放mapper.xml路径  
  4. resource = E:/java/eclipseVillage/icity-yuntv/resource  
  5. #指定数据连接驱动jar地址  
  6. classPath=E:/java/eclipseVillage/icity-yuntv/WebRoot/WEB-INF/lib/mysql-connector-java-5.1.11-bin.jar  
  7. jdbc_driver = com.mysql.jdbc.Driver  
  8. jdbc_url=jdbc:mysql://192.168.22.20:3306/icity_yuntv?characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull  
  9. jdbc_user=root  
  10. jdbc_password=ffcsadmin  


3、新建配置文件generatorConfig.xml:

 
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >  
  3. <generatorConfiguration>  
  4.     <!-- 引入配置文件 -->  
  5.     <properties resource="generator.properties"/>  
  6.       
  7.     <!-- 指定数据连接驱动jar地址 -->  
  8.     <classPathEntry location="${classPath}" />  
  9.       
  10.     <!-- 一个数据库一个context -->  
  11.     <context id="infoGuardian" targetRuntime="MyBatis3">  
  12.         <!-- 注释 -->  
  13.         <commentGenerator >  
  14.             <property name="suppressAllComments" value="true"/><!-- 是否取消注释 -->  
  15.             <property name="suppressDate" value="true" /> <!-- 是否生成注释代时间戳-->  
  16.         </commentGenerator>  
  17.           
  18.         <!-- jdbc连接 -->  
  19.         <jdbcConnection driverClass="${jdbc_driver}"  
  20.             connectionURL="${jdbc_url}" userId="${jdbc_user}"  
  21.             password="${jdbc_password}" />  
  22.           
  23.         <!-- 类型转换 -->  
  24.         <javaTypeResolver>  
  25.             <!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) -->  
  26.             <property name="forceBigDecimals" value="false"/>  
  27.         </javaTypeResolver>  
  28.           
  29.         <!-- 生成实体类地址 -->    
  30.         <javaModelGenerator targetPackage="cn.ffcs.yuntv.domain"  
  31.             targetProject="${project}" >  
  32.             <!-- 是否在当前路径下新加一层schema,eg:fase路径cn.ffcs.test.domain", true:cn.ffcs.test.domain".[schemaName] -->  
  33.             <property name="enableSubPackages" value="false"/>  
  34.             <!-- 是否针对string类型的字段在set的时候进行trim调用 -->  
  35.             <property name="trimStrings" value="true"/>  
  36.         </javaModelGenerator>  
  37.           
  38.         <!-- 生成mapxml文件 -->  
  39.         <sqlMapGenerator targetPackage="mybatis"  
  40.             targetProject="${resource}" >  
  41.             <!-- 是否在当前路径下新加一层schema,eg:fase路径cn.ffcs.test.domain", true:cn.ffcs.test.domain".[schemaName] -->  
  42.             <property name="enableSubPackages" value="false" />  
  43.         </sqlMapGenerator>  
  44.           
  45.         <!-- 生成mapxml对应client,也就是接口dao -->      
  46.         <javaClientGenerator targetPackage="cn.ffcs.yuntv.dao"  
  47.             targetProject="${project}" type="XMLMAPPER" >  
  48.             <!-- 是否在当前路径下新加一层schema,eg:fase路径cn.ffcs.test.domain", true:cn.ffcs.test.domain".[schemaName] -->  
  49.             <property name="enableSubPackages" value="false" />  
  50.         </javaClientGenerator>  
  51.           
  52.         <!-- 配置表信息,这里没生成一张表,这里需要改变一次对应表名 -->    
  53.         <table schema="icity_yuntv" tableName="T_USER_ADDR"  
  54.             domainObjectName="UserAddr" enableCountByExample="false"  
  55.             enableDeleteByExample="false" enableSelectByExample="false"  
  56.             enableUpdateByExample="false">  
  57.             <!-- schema即为数据库名 tableName为对应的数据库表 domainObjectName是要生成的实体类 enable*ByExample   
  58.                 是否生成 example类   -->  
  59.               
  60.             <!-- 忽略列,不生成bean 字段   
  61.             <ignoreColumn column="FRED" />-->  
  62.             <!-- 指定列的java数据类型   
  63.             <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />-->  
  64.         </table>  
  65.   
  66.     </context>  
  67. </generatorConfiguration>  


4、新建主类:

 
  1. import java.io.File;  
  2. import java.io.IOException;  
  3. import java.util.ArrayList;  
  4. import java.util.List;  
  5.   
  6. import org.mybatis.generator.api.MyBatisGenerator;  
  7. import org.mybatis.generator.config.Configuration;  
  8. import org.mybatis.generator.config.xml.ConfigurationParser;  
  9. import org.mybatis.generator.exception.XMLParserException;  
  10. import org.mybatis.generator.internal.DefaultShellCallback;  
  11.   
  12. public class GeneratorMain {  
  13.     public static void main(String[] args) {  
  14.         List<String> warnings = new ArrayList<String>();  
  15.         boolean overwrite = true;  
  16.         //读取配置文件  
  17.         File configFile = new File("src/generatorConfig.xml");  
  18.         ConfigurationParser cp = new ConfigurationParser(warnings);  
  19.         Configuration config;  
  20.         try {  
  21.             config = cp.parseConfiguration(configFile);  
  22.   
  23.             DefaultShellCallback callback = new DefaultShellCallback(overwrite);  
  24.             MyBatisGenerator myBatisGenerator;  
  25.             try {  
  26.                 myBatisGenerator = new MyBatisGenerator(config, callback,  
  27.                         warnings);  
  28.                 myBatisGenerator.generate(null);  
  29.                   
  30.                 //打印结果  
  31.                 for(String str : warnings){  
  32.                     System.out.println(str);  
  33.                 }  
  34.             } catch (Exception e) {  
  35.                 e.printStackTrace();  
  36.             }  
  37.   
  38.         } catch (IOException e) {  
  39.             e.printStackTrace();  
  40.         } catch (XMLParserException e) {  
  41.             e.printStackTrace();  
  42.         }  
  43.     }  
  44. }  


5、导入jar包:

MySQL-connector-Java-5.1.11-bin.jar.jar 下载地址;http://download.csdn.net/detail/p793049488/8087305

原文地址:https://www.cnblogs.com/xxj-bigshow/p/7233171.html