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 ...
 
随机推荐
- .NET中的加密算法总结(自定义加密Helper类续)
			
1.1.1 摘要 相信许多人都使用过.NET提供的加密算法,而且在使用的过程我们必须了解每种加密算法的特点(对称或非对称,密钥长度和初始化向量等等).我也看到过很多人写过.NET中加密算法总结,但我发 ...
 - Ubuntu下Qt编译报错“cannot find -lGL”的解决方案
			
转自cannot find -lGL Solved the problem by installing the "libglu1-mesa-dev" package. sudo a ...
 - 【官方文档】《暗黑世界V1.4》API说明!
			
指令号说明 账号注册 100 { username str 用户名 password str 密码 } 返回信息 { result bool 指令调用是否成功 ...
 - UVA 10651	 Pebble Solitaire 状态压缩dp
			
一开始还在纠结怎么表示一个状态,毕竟是一个串.后来搜了一下题解发现了这里用一个整数的前12位表示转态就好了 ,1~o,0~'-',每个状态用一个数来表示,然后dp写起来就比较方便了. 代码: #inc ...
 - 操作系统杂谈 mac 和linux windows若干概念
			
Mac: vmware 安装:1.方式一通过FreeBSD方式用 darwin.iso引导加载dmg安装 2.通过制作cdr /iso vmware安装mac插件 mac有 macpe 使用open ...
 - 【转】我的WIN7分辨率是1920*1080,调低后字体模糊
			
原文网址:http://tieba.baidu.com/p/778306758 WIN7还有一个“使用XP风格DPI缩放”的选项,如果选中则只放大文字,不选会连对话框和文字全部放大 这么多层楼,只有这 ...
 - c# 无损高质量压缩图片代码
			
/// <summary> /// 无损压缩图片 /// </summary> /// <param name="sFile">原图片</ ...
 - 安装Visual Studio2015后,使用VS2013开发的项目,在IIS访问都提示“公共语言运行时检测到无效的程序”的解决办法
			
1.安装VS2015后,.NET Framework4.6会替换掉 C:\Windows\Microsoft.NET\Framework64\v4.0.30319 (如果使用的是windows7 64 ...
 - PS CS5如何在一张图片里插入另一张图片?
			
帮你介绍两种比较简便的方法:1.ctrl+A全选,ctrl+C复制,在另一个图中ctrl+V粘贴即可:2.PS中的窗口可以拖动的,拉动一个窗口,选择移动工具,直接移到另一张图上即可!
 - hunnu       Sum of f(x)
			
http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=11546&courseid=0 Sum of f(x) ...