1.编写Generator执行配置文件:

generatorConfigation.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
<?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 location="c:/mysql-connector-java-5.1.22-bin.jar" />
  
    <!-- 环境配置 **************************************************
        id="自定义的配置名称"
        targetRuntime="MyBatis版本" -->
    <context id="MySqlTables" targetRuntime="MyBatis3" >
    
        <!-- 数据库  ===============================================
            driverClass="驱动"
            connectionURL="数据库url"
            userId="用户"
            password="密码" -->
        <jdbcConnection
            driverClass="com.mysql.jdbc.Driver"
            connectionURL="jdbc:mysql://127.0.0.1:3306/db_mybatis" 
            userId="root"
            password="root">  
        </jdbcConnection>
 
        <!-- Java数据类型分离器,数据类型转换 =====================
            property 属性
                name="强迫双精度"
                value="不" -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>
  
        <!-- Java模型生成器 =======================================
            targetPackage="生成文件的目标路径"
            targetProject="已存在的项目包"
                enableSubPackages-可以省略对应约束名,true-是的,可以省略tb_generator
                trimString-验证字符串,true-是的 -->
        <javaModelGenerator
                targetPackage="cn.cvu.test.model"
                targetProject="src">
            <property name="enableSubPackages" value="false" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
  
        <!-- sql映射文件生成器 =======================================
            targetPackage="生成文件的目标路径"
            targetProject="已存在的项目包"
                enableSubPackages-可以省略对应约束名,true-是的,可以省略tb_generator -->
        <sqlMapGenerator
                targetPackage="cn.cvu.test.xml"
                targetProject="src">
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>
  
        <!-- java委托对象DAO生成器,接口 =============================
            type=""
            targetPackage="生成文件的目标路径"
            targetProject="已存在的项目包"
                enableSubPackages-可以省略对应约束名,true-是的,可以省略tb_generator -->
        <javaClientGenerator
                type="XMLMAPPER"
                targetPackage="cn.cvu.test.dao"
                targetProject="src">
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>
        
        <!-- 表单,已存在,根据此表生成其它文件 =======================
            tableName="已有的表单名称"
            domainObjetctName="对应生成的文件名前缀" -->
        <table tableName="tb_generator" domainObjectName="Eminem">
            <!-- useActualColumnNames-使用真实列名 ,
                 true-嗯。如果false,则由columnOverride节点控制  -->
            <property name="useActualColumnNames" value="true" />
            
            <!-- 标识列
                column="列名" sqlStatement="某种数据库语言" identity="作为主键" -->
            <generatedKey column="id" sqlStatement="MySql" identity="true" />
            
            <!-- 覆盖项,当property name="useActualColumnNames" value="true"时。
                column="被覆盖值的列名" property="用来覆盖的对应的java类的属性" -->
            <columnOverride column="name" property="generName" />
  
        </table>
        
    </context>
 
</generatorConfiguration>

2.在MyEclipse中建空web项目:

将配置文件放到src里。加入generator的jar文件。

3.编写并执行Java程序:

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
package cn.cvu.test.build;
  
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;
  
public class TestGenerateWithJava {
  
    @Test
    public void testBuild() throws Exception {
                // 信息缓存
                List<String> warnings = new ArrayList<String>();
                // 覆盖已有的重名文件
                boolean overwrite = true;
                // 准备 配置文件
                File configFile = new File("F:/myeclipse_workspace/generator/src/generatorConfigation.xml");
                // 1.创建 配置解析器
                ConfigurationParser parser = new ConfigurationParser(warnings);
                // 2.获取 配置信息
                Configuration config = parser.parseConfiguration(configFile);
                // 3.创建 默认命令解释调回器
                DefaultShellCallback callback = new DefaultShellCallback(overwrite);
                // 4.创建 mybatis的生成器
                MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
                // 5.执行,关闭生成器
        myBatisGenerator.generate(null);
    }
}

4.查看并修改生成的文件:

选中src,按F5刷新,可以看到新文件已经创建:

修改报错的EmineMapper.java文件,去除注解:

5.测试,使用生成的文件查询:

1)导入MyBatis的jar包:

mybatis-3.2.2.jar 
                mybatis-generator-core-1.3.2.jar 
                mysql-connector-java-5.1.22-bin.jar

2)创建MyBatis的xml配置文件:

上面我们注释掉了自动生成的注解代码,在src新建一个xml配置文件,mybatisConfigation.xml:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
   PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
 
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/db_mybatis" />
                <property name="username" value="root" />
                <property name="password" value="root" />
            </dataSource>
        </environment>
    </environments>
 
    <mappers>
        <!-- 引入MBG生成器创建的映射文件 -->
        <mapper resource="cn/cvu/test/xml/EminemMapper.xml" />
    </mappers>
</configuration>

3)Java测试代码:

创建测试类cn.cvu.test.dotest.TestDoGeneratorWithJava :

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
package cn.cvu.test.dotest;
 
import java.io.Reader;
import java.util.List;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import cn.cvu.test.dao.EminemMapper;
import cn.cvu.test.model.Eminem;
import cn.cvu.test.model.EminemExample;
import cn.cvu.test.model.EminemExample.Criteria;
 
public class TestDoGeneratorWithJava {
 
    @Test
    public void testQuery() throws Exception {
 
        // 创建SQL会话:
        Reader reader = Resources.getResourceAsReader("mybatisConfigation.xml");
        SqlSession session = new SqlSessionFactoryBuilder().build(reader).openSession();
 
        // 创建查询实例:
        EminemExample eminemExample = new EminemExample();
 
        // 获取映射实体:
        EminemMapper mapper = session.getMapper(EminemMapper.class);
 
        // 利用实体通过实例查询全部条目
        List<Eminem> eminems = mapper.selectByExample(eminemExample);
        System.out.println("ID \t\t name \t\t notes \n");
        for (Eminem eminem : eminems) {
                System.out.println(eminem.getId()+
                                "\t\t"+eminem.getGenerName()+
                                "\t\t"+eminem.getNotes());
        }
        session.close();
    }
}

- end

Mybatis上路_06-使用Java自动生成的更多相关文章

  1. Mybatis上路_06-使用Java自动生成[转]

    Mybatis上路_06-使用Java自动生成 11人收藏此文章, 我要收藏发表于1个月前(2013-04-24 23:05) , 已有151次阅读 ,共0个评论 目录:[ - ] 1.编写Gener ...

  2. MyBatis Generator作为maven插件自动生成增删改查代码及配置文件例子

    什么是MyBatis Generator MyBatis Generator (MBG) 是一个Mybatis的代码生成器,可以自动生成一些简单的CRUD(插入,查询,更新,删除)操作代码,model ...

  3. JAVA自动生成正则表达式工具类

    经过很久的努力,终于完成了JAVA自动生成正则表达式工具类.还记得之前需要正则,老是从网上找吗?找了想修改也不会修改.现在不用再为此烦恼了,使用此生成类轻松搞定所有正则表达式.赶快在同事面前炫一下吧. ...

  4. 使用MyBatis Generator 1.3.7自动生成代码

    MyBatis Generator是一款mybatis自动代码生成工具,可以通过配置后自动生成文件. MyBatis Generator有几种方法可以生成代码,下面是其中一种.  一.官网下载 MyB ...

  5. mybatis多表查询,自动生成id

    主要是在配置文件中,配置好所要包含的字段. 类关系:account----role,1对1 account包含role类 java类: public class Account{ private In ...

  6. java自动生成entity文件

    网上关于自动生成entity文件的代码很多,看了很多代码后,在先辈们的基础上再完善一些功能(指定多个表,全部表). 为了使用方便所以把两个类写在一个java文件中,所以大家可以直接拿这个java文件, ...

  7. mybatis根据数据库表结构自动生成实体类,dao,mapper

    首先, pom需要引入 <!-- mysql --> <dependency> <groupId>mysql</groupId> <artifac ...

  8. java自动生成代码

    看到这个标题,如果你以为真的可以完全自动生成,那你就太Naive啦 我这里想介绍的是,利用模板生成我们需要的代码 一.模板 首先来说说模板,常见的java模板有:FreeMarker.Velocity ...

  9. java自动生成表单简单实例

    数据库表设置 tb_form(form表单) 字段 类型 约束 说明 Id Int 主键 主键 Formid Varchar2(20) 唯一 Form表单id的值 Action Varchar2(20 ...

随机推荐

  1. Oracle学习笔记1: 表与约束

    1. 登录SQL Plus: 系统用户有哪些: 1. sys,system权限比较高的用户: 2. sysman操作企业管理器使用的. 1.2 的密码是安装oracle是设置的. 3. scott用户 ...

  2. conky 配置变量表

    转自conky 配置变量表 项目主页:http://conky.sourceforge.net/ 文档说明:http://conky.sourceforge.net/docs.html Variabl ...

  3. 当 ITOA 遇上 OneAlert,企业可以至少每年节省 3600 小时!

    每个工作日,一家大型企业都可能存在一两件优先级为 1 级的事件,五六件优先级为 2 级的事件和百来件优先级为 3 级的事件.试想一下,如果公司所有支持人员都要收到每个事件的通知--不想了,我好方!还能 ...

  4. C#中使用正则表达式提取超链接地址的集中方法(转)

    一般在做爬虫或者CMS的时候经常需要提取 href链接或者是src地址.此时可以使用正则表达式轻松完成. Regex reg = new Regex(@"(?is)<a[^>]* ...

  5. ASP.NET MVC 入门1、简介

    什么是MVC模式 MVC(Model-View-Controller,模型-视图-控制器模式)用于表示一种软件架构模式.它把软件系统分为三个基本部分:模型(Model),视图(View)和控制器(Co ...

  6. Sum of Digits / Digital Root

    Sum of Digits / Digital Root In this kata, you must create a digital root function. A digital root i ...

  7. 常见 jar包详解

        常见 jar包详解 jar包 用途 axis.jar SOAP引擎包 commons-discovery-0.2.jar 用来发现.查找和实现可插入式接口,提供一些一般类实例化.单件的生命周期 ...

  8. Eclipse中输入系统变量和运行参数

    在开发时,有时候可能需要根据不同的环境设置不同的系统参数,我们都知道,在使用java -jar命令时可以使用-D参数来设置运行时的系统变量,同样,在Eclipse中运行java程序时,我们怎么设置该系 ...

  9. Webform——验证控件

    验证控件一般是在注册的时候用到,是直接将JS代码封装到了控件里面,拉过来直接可以用,下面介绍一下主要用法: 1.CompareValidator:比较验证 常用属性:ControlToCompare ...

  10. bzoj2938

    显然AC自动机,但什么叫无限生成呢?显然就是在AC自动机上匹配,出现了一个环(不能走结尾节点)直接搜索即可 ..,'] of longint; q,f:..] of longint; can,v,r: ...