iBATIS教程之入门浅析

转载 2015年11月17日 20:00:27

一、ibatis教程之ibatis介绍:
ibatis是什么呢?相对于hibernate和apache ojb等“一站式”orm解决方案而言,ibatis是一种“半自动化”的orm实现。

这个框架将让你能够更好的在java应用中设计和实现实体层。这个框架有两个主要的组成部分,一个是sql maps,另一个是data access objects。另外还包括一些可能很有用的工具。
sql maps:
sql maps是这个框架中最激动人心的部分,它是整个ibatis database layer的核心价值所在。通过使用sql maps你可以显著的节约数据库操作的代码量。sql maps使用一个简单的xml文件来实现从javabean到sql statements的映射。跟其他的框架或者对象映射工具相比,sql maps最大的优势是简单。它需要学习的东西很少,在连接表或复杂查询时也不需要复杂的scheme(怎么翻complex scheme?),使用sql maps, 你可以自由的使用sql语句。 
data access objects (dao) 
当我们开发灵活的java应用时,有一个好主意就是通过一个通用api层把实体操作的细节封装起来。data access objects允许你通过一个简单接口的来操作数据,从而隐藏了实现的细节。使用dao,你可以动态配置你的应用程序来访问不同的实体存储机制。如果你有 一个复杂的应用需要用到几个不同的数据库,dao可以让你建立一个一致的api,让系统的其他部分来调用。 
utilities 
ibatis database layer包含一系列的有用的工具,比如simpledatasource,jdbc datasource 2.0(也包括3.0)的一个轻量级实现。scriptrunner也提供了从单元测试到自动发布的数据库准备工作。 
工作流程: 
sql maps提供一个简单的框架,通过xml描述来映射javabeans,map implementations甚至原始类型的包装(string,integer等)到jdbc preparedstatement。想法很简单,基本的步骤如下:
1) 提供一个对象作为参数(either a javabean, map or primitive wrapper),the parameter object will be used setting input values in an update statement, or query values in a where clause (etc.).(感觉不译为好,你说呢?) 
2) 执行这个映射的statement,这一步是魔术发生的地方。sql maps框架将建立一个preparedstatement实例(instance),使用前面提供的对象的参数,执行statement,然后从resultset中建立一个返回对象。 
3) 如果是update,则返回有多少行修改了,如果是查询,则返回一个对象或者对象的集合。跟参数一样,返回对象也可以是一个javabean,map或者一个primitive type wrapper。 
二、ibatis教程之配置文件的使用: 
sql map的配置文件。这个文件是sql map实现的根配置,这不是本总结所要具体描述的。 
配置文件是xml文件,我们用它来配置属性,jdbc datasources 和 sql maps。它给我们一个便利的地方可以集中配置不同的datasource。这个框架支持ibatis simpledatasource, jakarta dbcp (commons),以及其他任何可以通过jndi context来访问的datasource。我们在以后将详细讨论这个问题。现在我们用jakarta dbcp,结构很简单,上面这个例子,它的配置文件如下。 
<properties>元素: 
这sql map中的<properties>元素支持sql map xml配置文件。配置文件里的元素符合data map规则。 
<properties>所应用的文件里的元素必须和<datasource>里的元素相对应。下面是sqlmapconfigexample.properties文件的内容。里面的元素和<datasource>里的元素相对应。 
<settings>元素 
maxrequests:在同一时间内能执行sql语句的次数 
maxsession:在同一时间内能起作用的session数 
maxtransaction:在同一时间内能执行的事务。 
statementcachesize:缓冲区的大小 
三、ibatis教程之操作方法介绍: 
注意:本总结适合有使用开发ibatis基础的人员参考。由于本人的能力有限,不足之处请大家指出。 
1. statement支持元素及支持的属性:
1.1 id 
id属性是必须的,它表示这个语句的名称,它在整个<sqlmap>元素内唯一的。在代码通过id来引用相关语句。 
1.2 parametermap 
parametermap属性定义了一个有序的值列表,分别有序的对应了标准参数化的sql语句中的?占位符。

1.3 parameterclass 
在没有指明parametermap属性的情况下,你可以指定parameterclass属性方法来替代parametermap属性。parameterclass属性的值可以使用类型的别名或者类型(类)全称 
1.4 resultmap 
resultmap可以让你控制你如何让数据从查询结果(resultmap)中提取出来存入java对象中。并且可以定义如何将字段映射到java bean的属性里。如下图: 
1.5 resultclass 
在resultmap属性没有指定的情况下,可以采用resultclass方式,resultclass的属性值可采用类型别名或者类型(class)全称的方式。指定的类将根据数据库的元数据自动的映射到查询结果的字段值中。 
2. parametermap元素属性 
2.1 id 
id属性是必须的,它提供了<parametermap>对元素data map里的唯一表示符 
2.2 class 
class属性是可选的,class属性必须是javabean或map实列,class属 
性虽是可选的,但推荐大家指定,class属性 可以用来验证传入的参数的合法性及优化查询 
3. 查询语句 
3.1 屏蔽特殊符 <![cdata[ ]]> 
3.2 语句导入 <include>,可以是语句优化 
使用<include>方法,上面的语句可以写成: 
4.自增长方法:<selectkey resultclass=”int”>,不管<selectkey resultclass=”int”>处于该语句的什么部位,都先执行此自增长方法。注意:mysql和oracle的方法不一样。 
5. <insert>方法: 
insert方法使用parametermap属性,字段名要和<parametermap>方法里的元素一一对应 
6. <resultclass>属性: 
使用resultclass方法,类person里必须id,firstname,lastname,birthdate,werghtkilograms,heightmeters这些属性。
7. 使用xmlresultname:xml映射文件 
8. 使用<parametermap>方法:用来设置元素的属性,其中nullvalue表示缺省值 
9. 如果传入的参数只有一个,用#value#来替代传入的参数名。如果还传来的是字段名,则ibatis不支持 
10. 判断传入的参数是否存在:isnotnull,判断传入的参数值是否大于设定的值:isgreaterthan 
11. 判断传入的参数是否为空:isempty和isnotemply 
12. 如果进行模糊查询,使用like方法

iBATIS教程之入门浅析

一、ibatis教程之ibatis介绍:ibatis是什么呢?相对于hibernate和apache ojb等“一站式”orm解决方案而言,ibatis是一种“半自动化”的orm实现。这个框架将让你能...
  • liurui03263348
  • liurui03263348
  • 2009年10月10日 15:32
  • 1870

iBATIS教程之快速入门浅析

iBATIS教程要从iBATIS的概念开始,它是又一个O/R Mapping解决方案,j2ee的O/R方案真是多,和Hibernate相比,iBATIS最大的特点就是小巧,上手很快。如果你不需要太多复...
  • escode
  • escode
  • 2009年08月06日 11:20
  • 2001

axure RP7.0视频教程从入门到精通全套62课时离线版WMV

axure RP7.0视频教程从入门到精通全套62课时离线版WMV,需要的看头像。
  • hulaihuluan
  • hulaihuluan
  • 2015年01月12日 23:48
  • 2422

Scala学习之数组的进一步认识

1、先来了解下之前的Array的用法吧               val arr = Array(1, 2, 3, 4)               for (obj              ...
  • mzygssk
  • mzygssk
  • 2015年08月05日 15:11
  • 237

iBATIS教程之快速入门浅析(转)

iBATIS教程要从iBATIS的概念开始,它是又一个O/R Mapping解决方案,j2ee的O/R方案真是多,和Hibernate相比,iBATIS最大的特点就是小巧,上手很快。如果你不需要太多复...
  • shuinianshui
  • shuinianshui
  • 2011年03月08日 10:56
  • 351

iBatis教程之搭建环境

这篇文章是想学习iBatis的人的入门级教程,从最开始的搭建环境开始,其他进一步的操作,会在后续的篇章中介绍。本文以iBatis2.3.3.720及Oracle数据库为例进行介绍。 1.在项目中导入...
  • veid_f3
  • veid_f3
  • 2015年01月18日 20:30
  • 278

Guitar Pro吉他调音软件之泛音的应用

Guitar Pro是一款备受吉他爱好者喜欢的吉他调音软件,可以直接用鼠标和键盘输入乐谱、查看、试听、打印。制作泛音、滑音等有较高的优势。...
  • Bella_55
  • Bella_55
  • 2018年01月02日 17:33
  • 37

VTK教程之十一&nbsp;可视化基础算法-方…

矢量是有大小和
  • woashizhangsi
  • woashizhangsi
  • 2014年12月12日 09:41
  • 491

RabbitMQ教程之php-amqplib(一)安装RabbitMQ

Installing on Debian / Ubuntu 添加 /etc/apt/preferences.d/erlang # /etc/apt/preferences.d/erlang Packa...
  • demon3182
  • demon3182
  • 2017年08月17日 16:45
  • 312

浅谈vb.net开发中使用excel插件代码

用VB.NET做excel插件开发,可能需要为excel添加自定义的工具栏。这个也是非常的简单的以下是引用片段:  Public Class ConnectClass Connect   Implem...
  • weilu0328
  • weilu0328
  • 2008年06月04日 10:00
  • 462
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iBATIS教程之入门浅析
举报原因:
原因补充:

(最多只允许输入30个字)