使用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
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、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 }
5、必须的jar包:
mysql-connector-java-5.1.11-bin.jar
mybatis-generator-core-1.3.1.jar