Mybatis最入门---代码自动生成(generatorConfig.xml配置)

经过前文的叙述,各位看官是不是已经被Mybatis的强大功能给折服了呢?本文我们将介绍一个能够极大提升我们开发效率的插件:即代码自动生成。这里的代码自动生成包括,与数据库一一对应的实体对象,Mapper基本结构文件,与Mapper对应的基本接口文件。本文,我们只介绍这个插件的基本用法,更多内容,就请读者先自行学习吧。

准备工作:

a.操作系统 :win7 x64

b.基本软件:MySQL,Mybatis,SQLyog

-------------------------------------------------------------------------------------------------------------------------------------

第一种方式:通过Main方法执行配置文件。

-------------------------------------------------------------------------------------------------------------------------------------

1.创建本文我们将使用的工程Mybatis13,工程结构图如下:【重点文件我们给出,其他配置文件请读者参考前文工程】


2.修改jdbc.properties文件,具体内容如下:

[plain]  view plain  copy
 
  1. jdbc.driverClassName=com.mysql.jdbc.Driver  
  2. jdbc.url=jdbc:mysql://localhost:3306/mybatis  
  3. jdbc.username=root  
  4. jdbc.password=1234  
3.修改log4j.properties,具体内容如下:

[plain]  view plain  copy
 
  1. log4j.rootLogger=debug,stdout  
  2. log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
  3. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
  4. log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n  
4.修改mbgConfiguration.xml,具体内容如下:

[java]  view plain  copy
 
  1. "1.0" encoding="UTF-8"?>    
  2.         PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"    
  3.         "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">    
  4.     
  5.     
  6.     "jdbc.properties" />    
  7.     "sqlserverTables" targetRuntime="MyBatis3">    
  8.             
  9.         "org.mybatis.generator.plugins.SerializablePlugin">    
  10.             
  11.                 
  12.             "suppressAllComments" value="true" />    
  13.             
  14.     
  15.             
  16.         "${jdbc.driverClassName}"    
  17.                         connectionURL="${jdbc.url}"    
  18.                         userId="${jdbc.username}"    
  19.                         password="${jdbc.password}">    
  20.             
  21.     
  22.             
  23.             
  24.             "forceBigDecimals" value="false" />    
  25.             
  26.     
  27.             
  28.             
  29.         "com.csdn.ingo.entity" targetProject="./src/main/java">    
  30.             "enableSubPackages" value="true"/>    
  31.                 
  32.             "trimStrings" value="true" />    
  33.             
  34.     
  35.             
  36.         "mappers" targetProject="./src/main/resources">    
  37.             "enableSubPackages" value="true"/>    
  38.             
  39.     
  40.             
  41.         "XMLMAPPER" targetPackage="com.csdn.ingo.dao" targetProject="./src/main/java">    
  42.             "enableSubPackages" value="true"/>    
  43.             
  44.     
  45.     
  46.             
  47.         "userinfo" domainObjectName="UserInfoPO"    
  48.                enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false"    
  49.                enableSelectByExample="false" selectByExampleQueryId="false" >    
  50.             "useActualColumnNames" value="false"/>    
  51.             
  52.         
  53.       
5.修改GenMain.java文件,具体内容如下:

[java]  view plain  copy
 
  1. package com.csdn.ingo.main;  
  2.   
  3. import java.io.File;  
  4. import java.io.IOException;  
  5. import java.sql.SQLException;  
  6. import java.util.ArrayList;  
  7. import java.util.List;  
  8.   
  9. import org.mybatis.generator.api.MyBatisGenerator;  
  10. import org.mybatis.generator.config.Configuration;  
  11. import org.mybatis.generator.config.xml.ConfigurationParser;  
  12. import org.mybatis.generator.exception.InvalidConfigurationException;  
  13. import org.mybatis.generator.exception.XMLParserException;  
  14. import org.mybatis.generator.internal.DefaultShellCallback;  
  15.   
  16. public class GenMain {  
  17.     public static void main(String[] args) {  
  18.         List warnings = new ArrayList();  
  19.         boolean overwrite = true;  
  20.         String genCfg = "/mbgConfiguration.xml";  
  21.         File configFile = new File(GenMain.class.getResource(genCfg).getFile());  
  22.         ConfigurationParser cp = new ConfigurationParser(warnings);  
  23.         Configuration config = null;  
  24.         try {  
  25.             config = cp.parseConfiguration(configFile);  
  26.         } catch (IOException e) {  
  27.             e.printStackTrace();  
  28.         } catch (XMLParserException e) {  
  29.             e.printStackTrace();  
  30.         }  
  31.         DefaultShellCallback callback = new DefaultShellCallback(overwrite);  
  32.         MyBatisGenerator myBatisGenerator = null;  
  33.         try {  
  34.             myBatisGenerator = new MyBatisGenerator(config, callback, warnings);  
  35.         } catch (InvalidConfigurationException e) {  
  36.             e.printStackTrace();  
  37.         }  
  38.         try {  
  39.             myBatisGenerator.generate(null);  
  40.         } catch (SQLException e) {  
  41.             e.printStackTrace();  
  42.         } catch (IOException e) {  
  43.             e.printStackTrace();  
  44.         } catch (InterruptedException e) {  
  45.             e.printStackTrace();  
  46.         }  
  47.     }  
  48. }  
6.测试方法:运行main方法,然后刷新工程即可。正常情况下:控制台能够看到如下输出,刷新工程后项目列表也能够看到填充文件的变化。



--------------------------------------------------------------------------------------------------------------------------------------------------------

在上面的mbgConfiguration.xml文件中,我们在给出一份更加详细的官方配置地址供读者参考,如下:

【英文版】http://www.mybatis.org/generator/configreference/xmlconfig.html

【中文版】http://generator.sturgeon.mopaas.com/configreference/table.html

--------------------------------------------------------------------------------------------------------------------------------------------------------

第二种方式:通过Maven插件运行。

--------------------------------------------------------------------------------------------------------------------------------------------------------

上面我们的工程是通过maven构建的,mybatis generator中也包含了一个可以集成到Maven的插件,具体做法如下:

1.修改pom.xml文件如下:

[html]  view plain  copy
 
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  2.     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
  3.     <modelVersion>4.0.0modelVersion>  
  4.   
  5.     <groupId>com.java.mybatisgroupId>  
  6.     <artifactId>mybatis13artifactId>  
  7.     <version>0.0.1-SNAPSHOTversion>  
  8.     <packaging>jarpackaging>  
  9.   
  10.     <name>mybatis13name>  
  11.     <url>http://maven.apache.orgurl>  
  12.   
  13.     <properties>  
  14.         <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>  
  15.     properties>  
  16.   
  17.     <dependencies>  
  18.         <dependency>  
  19.             <groupId>junitgroupId>  
  20.             <artifactId>junitartifactId>  
  21.             <version>4.12version>  
  22.             <scope>testscope>  
  23.         dependency>  
  24.         <dependency>  
  25.             <groupId>org.mybatisgroupId>  
  26.             <artifactId>mybatisartifactId>  
  27.             <version>3.3.1version>  
  28.         dependency>  
  29.         <dependency>  
  30.             <groupId>mysqlgroupId>  
  31.             <artifactId>mysql-connector-javaartifactId>  
  32.             <version>5.1.26version>  
  33.         dependency>  
  34.         <dependency>  
  35.             <groupId>org.mybatis.generatorgroupId>  
  36.             <artifactId>mybatis-generator-coreartifactId>  
  37.             <version>1.3.2version>  
  38.         dependency>  
  39.         <dependency>  
  40.             <groupId>log4jgroupId>  
  41.             <artifactId>log4jartifactId>  
  42.             <version>1.2.17version>  
  43.         dependency>  
  44.     dependencies>  
  45.     <build>  
  46.         <plugins>  
  47.             <plugin>  
  48.                 <groupId>org.mybatis.generatorgroupId>  
  49.                 <artifactId>mybatis-generator-maven-pluginartifactId>  
  50.                 <version>1.3.2version>  
  51.                 <configuration>  
  52.                     <verbose>trueverbose>  
  53.                     <overwrite>trueoverwrite>  
  54.                 configuration>  
  55.             plugin>  
  56.         plugins>  
  57.     build>  
  58. project>  
2.在默认情况下,MBG的配置文件的名称为generatorConfig.xml,并且与上文不同的是,这里需要指明数据库连接器的绝对路径。修改之后的配置文件如下:

[html]  view plain  copy
 
  1. xml version="1.0" encoding="UTF-8"?>    
  2.         PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"    
  3.         "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">  
  4.   
  5. <generatorConfiguration>  
  6.         <classPathEntry  
  7.             location="C:/Users/yyg/Desktop/DevTool/DevTool/repository/Maven/Maven3.2.2/local/repo/mysql/mysql-connector-java/5.1.26/mysql-connector-java-5.1.26.jar" />  
  8.         <context id="sqlserverTables" targetRuntime="MyBatis3">  
  9.               
  10.             <plugin type="org.mybatis.generator.plugins.SerializablePlugin">plugin>  
  11.             <commentGenerator>  
  12.                   
  13.                 <property name="suppressAllComments" value="true" />  
  14.             commentGenerator>  
  15.   
  16.               
  17.             <jdbcConnection driverClass="com.mysql.jdbc.Driver"  
  18.                 connectionURL="jdbc:mysql://localhost:3306/mybatis" userId="root" password="1234">  
  19.             jdbcConnection>  
  20.   
  21.               
  22.             <javaModelGenerator targetPackage="com.csdn.ingo.entity"  
  23.                 targetProject="./src/main/java">  
  24.                 <property name="enableSubPackages" value="true" />  
  25.                   
  26.                 <property name="trimStrings" value="true" />  
  27.             javaModelGenerator>  
  28.   
  29.               
  30.             <sqlMapGenerator targetPackage="mappers"  
  31.                 targetProject="./src/main/resources">  
  32.                 <property name="enableSubPackages" value="true" />  
  33.             sqlMapGenerator>  
  34.   
  35.               
  36.             <javaClientGenerator type="XMLMAPPER"  
  37.                 targetPackage="com.csdn.ingo.dao" targetProject="./src/main/java">  
  38.                 <property name="enableSubPackages" value="true" />  
  39.             javaClientGenerator>  
  40.   
  41.   
  42.               
  43.             <table tableName="userinfo" domainObjectName="UserInfoPO"  
  44.                 enableCountByExample="false" enableUpdateByExample="false"  
  45.                 enableDeleteByExample="false" enableSelectByExample="false"  
  46.                 selectByExampleQueryId="false">  
  47.                 <property name="useActualColumnNames" value="false" />  
  48.             table>  
  49.         context>  
  50.     generatorConfiguration>      

3.运行方法:在eclipse 中,选择pom.xml文件,击右键先择Run AS——>Maven Build… ——>在Goals框中输入:mybatis-generator:generate

--------------------------------------------------------------------------------------------------------------------------------------------------------

对比上面两种方式,博主更加倾向于第一种方式,其main方法每次保持不变,xml配置文件中,也不用关心jdbc配置,每次使用时只需要修改其他关键配置项即可。另外,按照官方文档,我们还能够使用命令行,ant等方式实现上述同样的效果。这里博主只列出这两种方式的示例,更多内容请读者自行实现。

最后,在给出一个小建议:在建表时,字段名称建议用"_"分隔多个单词,比如:AWB_NO、REC_ID...,这样生成的entity,属性名称就会变成漂亮的驼峰命名,即:awbNo、recId

--------------------------------------------------------------------------------------------------------------------------------------------------------

至此,Mybatis最入门---代码自动生成(GeneratorCOnfig.xml配置)结束



参考资料:

官方文档:

http://www.jianshu.com/p/e09d2370b796

http://www.cnblogs.com/yjmyzz/p/4210554.html

你可能感兴趣的:(后台开发)