MyBatis使用Generator自动生成代码

MyBatis中,可以使用Generator自动生成代码,包括DAO层、 MODEL层 、MAPPING SQL映射文件。

第一步:
配置好自动生成代码所需的XML配置文件,例如(generator.xml):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
  PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
 
<generatorConfiguration>
<!-- classPathEntry:数据库的JDBC驱动-->
  <classPathEntry location="F:\Jansun\workspace\wicketAjax\ojdbc14-10.2.0.1.jar" />
 
  <context id="DB2Tables" targetRuntime="MyBatis3">
<!-- 去除自动生成的注释 -->
<commentGenerator>
 <property name="suppressAllComments" value="true" />
</commentGenerator>
 
    <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"
        connectionURL="jdbc:oracle:thin:@10.87.61.233:1521:orcl11g"
        userId="ibis"
        password="ibis">
    </jdbcConnection>
 
    <javaTypeResolver >
      <property name="forceBigDecimals" value="false" />
    </javaTypeResolver>
 
<!-- targetProject:自动生成代码的位置 -->
    <javaModelGenerator targetPackage="com.test.model" targetProject="F:\Jansun\workspace\wicketAjax\src">
      <property name="enableSubPackages" value="true" />
      <property name="trimStrings" value="true" />
    </javaModelGenerator>
 
    <sqlMapGenerator targetPackage="com.test.mapping"  targetProject="F:\Jansun\workspace\wicketAjax\src">
      <property name="enableSubPackages" value="true" />
    </sqlMapGenerator>
 
    <javaClientGenerator type="XMLMAPPER" targetPackage="com.test.dao"  targetProject="F:\Jansun\workspace\wicketAjax\src">
      <property name="enableSubPackages" value="true" />
    </javaClientGenerator>
 
<!-- tableName:用于自动生成代码的数据库表;domainObjectName:对应于数据库表的javaBean类名 -->
    <table schema="ibis" tableName="ibis_info" domainObjectName="Ibis" >
      
    </table>
 
  </context>
  
</generatorConfiguration>
 
第二步:下载 mybatis-generator-core-1.3.1.jar 包。
 
第三步:进入XML配置文件(generator.xml)所在的的目录并执行命令:
 
java -jar F:\mybatis-generator-core-1.3.1\lib\mybatis-generator-core-1.3.1.jar -configfile genrator.xml -overwrite
 
(PS:F:\mybatis-generator-core-1.3.1\lib\mybatis-generator-core-1.3.1.jar,是你所下载的 mybatis-generator-core-1.3.1.jar包所在的目录
//--------------------------------------------------------------------------------------
 

Mybatis-generator-------------Mybatis的代码生成器

使用Hibernate可以很方便的生成model,dao,和映射配置文件.mybatis也有生成器,mybatis generator, 简称MBG. 下面为大家介绍一下MBG的使用.

 

    Mybatis-generator的思想是编写一个配置文件,然后运行该配置文件,就会得到相应的java代码。那么重点就是这个配置文件,配置文件中都需要些什么呢?必须包括的有数据库的datasourceMybatis的版本信息,至少一个的数据表,还有是需要生成的代码所在的包的信息。

 

1.下载类包

下载mybatis-generator-core-1.3.1-bundle.zip之后解压得到mybatis-generator-core-1.3.1.jar, 即生成器的jarmybatis-3.0.6.jarmybatis-generator-core-1.3.1.jar加入到项目的lib然后编写一个生成器的配置文件generatorConfig.xml.

2. mybatis-generator的配置文件

mybatis-generator最重要的就是一个配置文件,配置文件中配置了生成的.dao pojo生成的package路径等。

介绍一下genernatorConfig.xml

 
   
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<? xml version = "1.0" encoding = "UTF-8" ?>
<!DOCTYPE generatorConfiguration 
 
   PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" 
 
 
   
 
< generatorConfiguration
 
     < properties resource = "com/yuan/mybatis/mbg/util/generatorConfig.properties" /> 
 
     < classPathEntry location = "${classPath}" /> 
 
     < context id = "MBG" targetRuntime = "MyBatis3" defaultModelType = "conditional"
 
         < plugin type = "org.mybatis.generator.plugins.EqualsHashCodePlugin" /> 
 
         < plugin type = "org.mybatis.generator.plugins.MapperConfigPlugin"
 
             < property name = "fileName" value = "GeneratedMapperConfig.xml" /> 
 
             < property name = "targetPackage" value = "com.yuan.mybatis.mbg.util" /> 
 
             < property name = "targetProject" value = "${targetProject}" /> 
 
         </ plugin
 
         < commentGenerator
 
             < property name = "suppressAllComments" value = "true" /> 
 
         </ commentGenerator
 
         < jdbcConnection driverClass = "${driverClass}" 
 
             connectionURL = "${connectionURL}" userId = "${userId}" password = "${password}"
 
         </ jdbcConnection
 
         < javaTypeResolver
 
             < property name = "forceBigDecimals" value = "false" /> 
 
         </ javaTypeResolver
 
   
 
         < javaModelGenerator targetPackage = "${modelPackage}" 
 
             targetProject = "${targetProject}"
 
             < property name = "enableSubPackages" value = "true" /> 
 
         </ javaModelGenerator
 
   
 
         < sqlMapGenerator targetPackage = "${sqlMapperPackage}" 
 
             targetProject = "${targetProject}"
 
             < property name = "enableSubPackages" value = "true" /> 
 
         </ sqlMapGenerator
 
   
 
         < javaClientGenerator type = "XMLMAPPER" 
 
             targetPackage = "${daoMapperPackage}" targetProject = "${targetProject}"
 
             < property name = "enableSubPackages" value = "true" /> 
 
         </ javaClientGenerator
 
         < table schema = "minghan" tableName = "sys_group" domainObjectName = "Group"
 
             < generatedKey column = "groupId" sqlStatement = "mysql" 
 
                 identity = "true" /> 
 
         </ table
 
         < table schema = "minghan" tableName = "sys_admin" domainObjectName = "Admin" 
 
             enableCountByExample = "false" enableUpdateByExample = "false" 
 
             enableDeleteByExample = "false" enableSelectByExample = "false" 
 
             selectByExampleQueryId = "false"
 
         </ table
 
   
 
     </ context
 
</ generatorConfiguration >
 
   

其中的properties元素里引用了一个generatorConfig.properties配置文件是为了方便移植的时候,只需修改resource的路径值和generatorConfig.properties里的值即进行生成操作.

generatorConfig.properties代码如下:

Properties代码  收藏代码

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
classPath=D\:/ylink/myeclipse/MBG/lib/mysql-connector-java-5.0.7-bin.jar 
 
targetProject=D\:/ylink/myeclipse/MBG/src 
 
driverClass=com.mysql.jdbc.Driver 
 
connectionURL=jdbc\:mysql\://127.0.0.1\:3306/minghan?useUnicode\=true&amp;characterEncoding\=UTF-8 
 
userId=root 
 
password=root 
 
modelPackage=com.yuan.mybatis.mbg.model 
 
sqlMapperPackage=com.yuan.mybatis.mbg.model.mapper 
 
daoMapperPackage=com.yuan.mybatis.mbg.dao.mapper

 

 其中, targetProject是工程的源代码存放位置

classPath是数据库驱动包的位置, modelPackage是存放model实体的包对应数据库表, sqlMapperPackage是存放实体映射的XML配置文件, daoMapperPackage是存放Mapper接口的地方.

注意要事先建立这些包才可以生成.

如果不想生成mybatis的注释信息可以将commentGenerator里的suppressAllComments的值设为true,

table元素对应数据库表.

<table schema="minghan" tableName="sys_admin" domainObjectName="Admin"  

     enableCountByExample="false" enableUpdateByExample="false"  

     enableDeleteByExample="false" enableSelectByExample="false"

    selectByExampleQueryId="false">

</table> 

 schema即为数据库名, tableName为对应的数据库表, domainObjectName是要生成的实体类如果想要mapper配置文件加入sqlwhere条件查询可以将enableCountByExample等设为true, 这样就会生成一个对应domainObjectNameExample, enableCountByExample等设为false就不会生成对应的Example类了.

3.运行

配置文件配好了之后,进行生成代码既可以使用命令的方式也可以自已写一个带main的类来运行下面提供了一个带main的运行类

MyBatisGeneratorTool.java

Java代码  收藏代码

  1. ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    package com.yuan.mybatis.mbg.util; 
       
     
    import java.io.File; 
     
    import java.io.IOException; 
     
    import java.sql.SQLException; 
     
    import java.util.ArrayList; 
     
    import java.util.List; 
     
       
     
    import org.mybatis.generator.api.MyBatisGenerator; 
     
    import org.mybatis.generator.config.Configuration; 
     
    import org.mybatis.generator.config.xml.ConfigurationParser; 
     
    import org.mybatis.generator.exception.InvalidConfigurationException; 
     
    import org.mybatis.generator.exception.XMLParserException; 
     
    import org.mybatis.generator.internal.DefaultShellCallback; 
     
       
     
    public class MyBatisGeneratorTool { 
     
         public static void main(String[] args) { 
     
             List<String> warnings = new ArrayList<String>(); 
     
             boolean overwrite = true
     
             String genCfg = "/generatorConfig.xml" ; //src的一级目录下 
     
             File configFile = new File(MyBatisGeneratorTool. class .getResource(genCfg).getFile()); 
     
             ConfigurationParser cp = new ConfigurationParser(warnings); 
     
             Configuration config = null
     
             try
     
                 config = cp.parseConfiguration(configFile); 
     
             } catch (IOException e) { 
     
                 e.printStackTrace(); 
     
             } catch (XMLParserException e) { 
     
                 e.printStackTrace(); 
     
            
     
             DefaultShellCallback callback = new DefaultShellCallback(overwrite); 
     
             MyBatisGenerator myBatisGenerator = null
     
             try
     
                 myBatisGenerator = new MyBatisGenerator(config, callback, warnings); 
     
             } catch (InvalidConfigurationException e) { 
     
                 e.printStackTrace(); 
     
            
     
             try
     
                 myBatisGenerator.generate( null ); 
     
             } catch (SQLException e) { 
     
                 e.printStackTrace(); 
     
             } catch (IOException e) { 
     
                 e.printStackTrace(); 
     
             } catch (InterruptedException e) { 
     
                 e.printStackTrace(); 
     
            
     
        
     
    }

 运行此类即可生成对应于数据库表的实体类, Mapper配置文件, Mapper接口生成后可以测试其可用性.

使用命令的方式运行:

  java -jar mybatis-generator-core-x.x.x.jar -configfile generatorConfig.xml -overwrite

4.其他学习网址推荐

推荐一个比较好的mybatis-generator的教学网址:

http://www.cnblogs.com/harrychinese/archive/2012/01/09/learn_mybatis.html

你可能感兴趣的:(generator)