使用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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM