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

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
generator.propertiesl配置文件

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>
配置xml文件代码

4、java主类:

 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 }
java main主函数

5、必须的jar包:

mysql-connector-java-5.1.11-bin.jar

mybatis-generator-core-1.3.1.jar

posted @ 2016-11-12 19:16  _推前浪  阅读(222)  评论(0编辑  收藏  举报