Mybatis上路_06-使用Java自动生成
目录[-]
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自动生成的更多相关文章
- Mybatis上路_06-使用Java自动生成[转]
Mybatis上路_06-使用Java自动生成 11人收藏此文章, 我要收藏发表于1个月前(2013-04-24 23:05) , 已有151次阅读 ,共0个评论 目录:[ - ] 1.编写Gener ...
- MyBatis Generator作为maven插件自动生成增删改查代码及配置文件例子
什么是MyBatis Generator MyBatis Generator (MBG) 是一个Mybatis的代码生成器,可以自动生成一些简单的CRUD(插入,查询,更新,删除)操作代码,model ...
- JAVA自动生成正则表达式工具类
经过很久的努力,终于完成了JAVA自动生成正则表达式工具类.还记得之前需要正则,老是从网上找吗?找了想修改也不会修改.现在不用再为此烦恼了,使用此生成类轻松搞定所有正则表达式.赶快在同事面前炫一下吧. ...
- 使用MyBatis Generator 1.3.7自动生成代码
MyBatis Generator是一款mybatis自动代码生成工具,可以通过配置后自动生成文件. MyBatis Generator有几种方法可以生成代码,下面是其中一种. 一.官网下载 MyB ...
- mybatis多表查询,自动生成id
主要是在配置文件中,配置好所要包含的字段. 类关系:account----role,1对1 account包含role类 java类: public class Account{ private In ...
- java自动生成entity文件
网上关于自动生成entity文件的代码很多,看了很多代码后,在先辈们的基础上再完善一些功能(指定多个表,全部表). 为了使用方便所以把两个类写在一个java文件中,所以大家可以直接拿这个java文件, ...
- mybatis根据数据库表结构自动生成实体类,dao,mapper
首先, pom需要引入 <!-- mysql --> <dependency> <groupId>mysql</groupId> <artifac ...
- java自动生成代码
看到这个标题,如果你以为真的可以完全自动生成,那你就太Naive啦 我这里想介绍的是,利用模板生成我们需要的代码 一.模板 首先来说说模板,常见的java模板有:FreeMarker.Velocity ...
- java自动生成表单简单实例
数据库表设置 tb_form(form表单) 字段 类型 约束 说明 Id Int 主键 主键 Formid Varchar2(20) 唯一 Form表单id的值 Action Varchar2(20 ...
随机推荐
- BZOJ 3997 [TJOI 2015 组合数学] 解题报告
这个题我脑洞了一个结论: 首先,我们定义满足以下条件的路径为“从右上到左下的路径”: 对于路径上任何不相同的两个点 $(x_1, y_1)$,$(x_2, y_2)$,都有: $x_1\neq x_2 ...
- [转载]MongoDB开发学习(1)开天辟地,经典入门
原文地址:http://www.cnblogs.com/xumingxiang/archive/2012/04/08/2437468.html 如果你从来没有接触MongoDB或对MongoDB有一点 ...
- 自己写loader
http://www.cnblogs.com/lynxcat/archive/2013/03/08/2950373.html http://addyosmani.com/blog/building-a ...
- Java集合类之LinkedList链表
package com.test; import java.util.*; public class Demo7_3 { public static void main(String[] args) ...
- ANDROID_MARS学习笔记_S01原始版_016_Service
一.代码1.xml(1)main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayo ...
- html5学习链接
http://www.runoob.com/tags/html-colorpicker.html
- hihocoder #1289 : 403 Forbidden (2016 微软编程笔试第二题)
#1289 : 403 Forbidden 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Little Hi runs a web server. Sometimes ...
- Linux 性能监测工具总结
前言: Linux系统出现问题时,我们不仅需要查看系统日志信息,而且还要使用大量的性能监测工具来判断究竟是哪一部分(内存.CPU.硬盘……)出了问题.在Linux系统中,所有的运行参数保存在虚拟目录/ ...
- jquery的小插件(按钮抖动)——衍生QQ窗口抖动
1.抖动的按钮 效果预览:http://runjs.cn/detail/tyx8dbag <script type="text/javascript"> //shake ...
- Apache搭建多个站点
如何用Apache搭建的网站系统上运行多个站点呢?最平常的大概有3种方法. 第一种:单IP不同端口 第二种:多IP同端口(独立IP的虚拟空间) 第三种:域名绑定根目录的方式(共享IP的虚拟空间) 下面 ...