Mybatis上路_05-使用命令行自动生成
http://my.oschina.net/vigiles/blog/125127
目录[-]
- 1.数据准备:
- 1)建库:
- 2)建表:
- 3)预设数据:
- 2.编写Generator执行配置文件:
- 3.搭建执行环境:
- 1)创建项目包:
- 2)准备文件:
- 4.执行命令行语句:
- 5.查看生成的文件:
- 6.查看文件内容:
- 1) cn/cvu/dao/EminemMapper.java :
- 2)cn/cvu/model/Eminem.java :
- 3) cn/cvu/model/EminemExample.java :
- 4)cn/cvu/xml/EminemMapper.xml :
- 7.测试,使用生成的文件查询:
- 1)导入MyBatis的jar包:
- 2)创建MyBatis的xml配置文件:
- 3)Java测试代码:
1.数据准备:
mysql5.5 。
1)建库:
|
1
2
|
CREATE DATABASE DB_MYBATIS CHAR SET UTF8;USE DB_MYBATIS; |
2)建表:
|
1
2
3
4
5
|
CREATE TABLE TB_GENERATOR( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(60) , notes VARCHAR(200)); |
3)预设数据:
|
1
2
|
INSERT INTO TB_GENERATOR VALUES (1, "eminem1", "notes1");INSERT INTO TB_GENERATOR VALUES (2, "eminem2", "notes2"); |
2.编写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
|
<?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="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="test.model" targetProject="\cn\cvu"> <property name="enableSubPackages" value="false" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- sql映射文件生成器 ======================================= targetPackage="生成文件的目标路径" targetProject="已存在的项目包" enableSubPackages-可以省略对应约束名,true-是的,可以省略tb_generator --> <sqlMapGenerator targetPackage="test.xml" targetProject="\cn\cvu"> <property name="enableSubPackages" value="false" /> </sqlMapGenerator> <!-- java委托对象DAO生成器,接口 ============================= type="" targetPackage="生成文件的目标路径" targetProject="已存在的项目包" enableSubPackages-可以省略对应约束名,true-是的,可以省略tb_generator --> <javaClientGenerator type="XMLMAPPER" targetPackage="test.dao" targetProject="\cn\cvu"> <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> |
3.搭建执行环境:
1)创建项目包:

2)准备文件:

4.执行命令行语句:
C:\> java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfigation.xml

如果增加“ -overwrite ”参数会覆盖原有文件。事实上原有文件会被重命名。


5.查看生成的文件:

6.查看文件内容:
在MyEclipse中新建空web项目,将“cn”包放入“src”内。

1) cn/cvu/dao/EminemMapper.java :
(1)修改自动生成的包路径。如果没有注解类包,可以注释图中第4行代码。

(2)然后将图中两行代码中的注解删除。
2)cn/cvu/model/Eminem.java :
修改包路径。

3) cn/cvu/model/EminemExample.java :
修改包路径。

4)cn/cvu/xml/EminemMapper.xml :
修改映射文件路径:







7.测试,使用生成的文件查询:
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
24
25
|
<?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.TestGenerateWithXML :

|
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 TestGenerateWithXML { @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上路_05-使用命令行自动生成的更多相关文章
- Mybatis上路_05-使用命令行自动生成【转】
http://my.oschina.net/vigiles/blog/125127 Mybatis上路_05-使用命令行自动生成 1人收藏此文章, 我要收藏 发表于1个月前(2013-04-24 ...
- JMeter命令行执行+生成HTML报告
1.为什么用命令行模式 使用GUI方式启动jmeter,运行线程较多的测试时,会造成内存和CPU的大量消耗,导致客户机卡死: 所以一般采用的方式是在GUI模式下调整测试脚本,再用命令行模式执行: 命令 ...
- mybatis框架下使用generator插件自动生成domain/mapping/mapper
手动去创建domain/mapping/mapper费时费力还容易出错,用插件自动生成非常的方便. 这里以MySQL数据库为例,也可以改成Oracle,改成相应的驱动和URL即可. 下载generat ...
- mybatis用mybatis-generator-core-1.3.5.jar自动生成实体类
原文出处:https://blog.csdn.net/shuoshuo_12345/article/details/80626241,本文只是个人总结而已! 方法1:在pom文件中添加依赖 只需在搭建 ...
- mybatis自定义代码生成器(Generator)——自动生成model&dao代码
花了两天的时间研究了下mybatis的generator大体了解了其生成原理以及实现过程.感觉generator做的非常不错,给开发者也留足了空间.看完之后在generator的基础上实现了自定义的生 ...
- InnoSetup 以命令行自动编译打包
本章介绍,在新建Innosetup的编译脚本iss文件后,在不运行Innosetup软件的基础上,以bat自动编译运行打包. 一.添加Innosetup软件包 下载InnoSetup软件包并解压到bu ...
- 7z 命令行方式生成自解压exe
一.下载 7z是一个免费的工具,除了通过命令行的方式提供各种文件.压缩包相关的操作外,还提供了一种方式可以打出自解压的exe程序.该程序从运行到结束经历了三个流程: (1) 解压文件到用户临时目录: ...
- 『动善时』JMeter基础 — 56、JMeter使用命令行模式生成HTML测试报告
目录 1.自动生成HTML图形化报告 2.使用已有的测试结果文件生成HTML报告 3.HTML图形化报告内容详解 (1)Dashboard页面:(重点查看) (2)Charts页面:(辅助分析) 4. ...
- 在GNU/Linux下使用命令行自动挂载与卸载USB磁盘
在命令行环境下如果每次都是靠手动敲入mount与umount命令来挂载与卸载USB磁盘是件很麻烦的事情.尤其是mount命令的参数非常多.比如,磁盘的分区类型(vfat.ntfs等),挂载的目录节点, ...
随机推荐
- 聊聊 Statsd 和 Collectd 那点事!
StatsD 是由 Etsy 开发并发布的汇总和总结应用指标的一个简单的守护进程,近些年来发展迅速,已经变成了一个用于收集应用性能指标的统一的协议. 关于 Statsd 的使用已经有很多文章介绍过,所 ...
- [dp]POJ2559 && HDOJ1506 Largest Rectangle in a Histogram
题意 给n个条形的高度, 问能放的最大矩形面积 分析: 从左到右 从右到左 各搞一遍 分别记录 L[i]记录列(从前往后)标 第几列开始 可以往后放高度为a[i]的矩形 R[i]记录列(从 ...
- Android Service 生命周期和使用注意项
一.基础知识 服务一般分为两种: 1:本地服务, Local Service 用于应用程序内部.在Service可以调用Context.startService()启动,调用Context.stopS ...
- Myeclipse开发内存溢出问题
MyEclipse开发内存溢出问题 window --> preferences --> MyEclipse --> servers --> Tomcat --> J ...
- 【HDOJ】5564 Clarke and digits
DP+快速矩阵幂.注意base矩阵的初始化,不难. /* 5564 */ #include <iostream> #include <string> #include < ...
- tlplayer for ios V1.1.2加密测试版本(修复1.1.1版本 for ios7播放闪退问题)
此版本主要修复了ios7播放列表导致的程序闪退问题,方便大家测试加密与非加密视频. 此为tlplayer for ios版本,可以播放加密视频与非加密视频. 加密视频下载地址:http://blog. ...
- Hello Indigo
Windows Communication Foundation (WCF),formerly code-named “Indigo,” is Microsoft’s platform for Ser ...
- web项目测试方法总结
在Web工程过程中,基于Web系统的测试.确认和验收是一项重要而富有挑战性的工作.基于Web的系统测试与传统的软件测试不同,它不但需要检查和验证是否按照设计的要求运行,而且还要测试系统在不同用户的浏览 ...
- POJ 1860 Currency Exchange + 2240 Arbitrage + 3259 Wormholes 解题报告
三道题都是考察最短路算法的判环.其中1860和2240判断正环,3259判断负环. 难度都不大,可以使用Bellman-ford算法,或者SPFA算法.也有用弗洛伊德算法的,笔者还不会SF-_-…… ...
- 【转】iTunes下载速度太慢?两招帮你提速!-- 不错
原文网址:http://bbs.app111.com/thread-275-1-1.html 不用说,很多朋友都发现在大陆,下载 iTunes 上的东西实在是慢如蜗牛,小一点的软件还能坚持一下,大一点 ...