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代码。那么重点就是这个配置文件,配置文件中都需要些什么呢?必须包括的有数据库的datasource,Mybatis的版本信息,至少一个的数据表,还有是需要生成的代码所在的包的信息。

1.下载类包

下载mybatis-generator-core-1.3.1-bundle.zip之后, 解压得到mybatis-generator-core-1.3.1.jar, 即生成器的jar包, 将mybatis-3.0.6.jar和mybatis-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配置文件加入sql的where条件查询, 可以将enableCountByExample等设为true, 这样就会生成一个对应domainObjectName的Example类, 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

MyBatis使用Generator自动生成代码的更多相关文章

  1. 【Mybatis】MyBatis之Generator自动生成代码(九)

    MyBatis Generator 简介 MyBatis Generator 连接数据库表并生成MyBatis或iBatis文件.这有助于最大限度地减少使用MyBatis时为数据库文件创建简单CRUD ...

  2. Mybatis的generator自动生成代码

    mybatis-generator有三种用法:命令行.ide插件.maven插件.本次使用maven生成 环境:IDEA,mysql8,maven (1):新建项目,本次以SpringBoot项目为例 ...

  3. SpringBoot 添加mybatis generator 自动生成代码插件

    自动生成数据层代码,提高开发效率 1.pom添加插件,并指定配置文件路径 <!-- mybatis generator 自动生成代码插件 --> <plugin> <gr ...

  4. springboot学习随笔(四):Springboot整合mybatis(含generator自动生成代码)

    这章我们将通过springboot整合mybatis来操作数据库 以下内容分为两部分,一部分主要介绍generator自动生成代码,生成model.dao层接口.dao接口对应的sql配置文件 第一部 ...

  5. idea中mybatis generator自动生成代码配置 数据库是sqlserver

    好长时间没有写博客了,最近公司要用java语言,开始学习java,属于初学者,今天主要记录一下mybatis generator自动生成代码,首先在如下图的目录中新建两个文件,如下图 generato ...

  6. SpringBoot入门篇--整合mybatis+generator自动生成代码+druid连接池+PageHelper分页插件

    原文链接 我们这一篇博客讲的是如何整合Springboot和Mybatis框架,然后使用generator自动生成mapper,pojo等文件.然后再使用阿里巴巴提供的开源连接池druid,这个连接池 ...

  7. IDEA Maven Mybatis generator 自动生成代码

    IDEA Maven Mybatis generator 自动生成代码 一.安装配置maven以及在Idea中配置maven 安装过程步骤可以看上面的博文,里面介绍得很详细. 二.建数据表 DROP ...

  8. IDEA Maven Mybatis generator 自动生成代码(实例讲解)(转)

    IDEA Maven Mybatis generator 自动生成代码(实例讲解) MyBatis Generator • 简称MBG,是一个专门为MyBatis框架使用者定制的代码生成器,可以快速的 ...

  9. generator自动生成代码

    idea设置generator自动生成代码: http://blog.csdn.net/sunny243788557/article/details/45166397

随机推荐

  1. LGA(land grid array)

    产品应用 1.射频功放 2.加速度传感器 3.地磁传感器 可靠性 Reliability 高压蒸煮 PCT 121℃,100%RH,2atm,96hrs 高低温循环 TCT -55℃(15min)~1 ...

  2. web编码(转)

    问题2.浏览器编码方式是根据“响应标头-response header”中的键为“Content-Type”的值来自动选择判断,而不会简单的根据你在html中看到的标签值<meta http-e ...

  3. 为什么国外程序员爱用苹果 Mac 电脑?

      Mac 在国外很受欢迎,尤其是在 设计/web开发/IT 人员圈子里.普通用户喜欢 Mac 可以理解,毕竟 Mac 设计美观,简单好用,没有病毒.那么为什么专业人士也对 Mac 情有独钟呢?从个人 ...

  4. Codeforces 306B

    #include <cstdio> #include <algorithm> #include <cstring> #include <cstdlib> ...

  5. HDU 1134 卡特兰数 大数乘法除法

    Problem Description This is a small but ancient game. You are supposed to write down the numbers 1, ...

  6. 服务管理——ntp

    一 ntp相关知识 什么是时间同步服务器 Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可 ...

  7. 【POJ 1125】Stockbroker Grapevine

    id=1125">[POJ 1125]Stockbroker Grapevine 最短路 只是这题数据非常水. . 主要想大牛们试试南阳OJ同题 链接例如以下: http://acm. ...

  8. Oracle EBS Concurrent Request:Gather Schema Statistics[Z]

    Oracle EBS 的Concurrent Request"Gather Schema Statistics"是一个和性能相关的Concurrent Program,它会对表,列 ...

  9. HTTP头信息(转)--2

    HTTP 头部解释 ========================================================================================== ...

  10. linux安装桌面软件

    CentOS 作为服务器的操作系统是很常见的,但是因为需要稳定而没有很时髦的更新,所以很少做为桌面环境.在服务器上通常不需要安装桌面环境,最小化地安装 CentOS(也就是 minimal CentO ...