ibatis的自学笔记

hibernate用了一段时间,可能是没有深入到技术细节,总觉得工作效率上不高,而且sql语句的编写不灵活,不能充分的利用sql语句的优势(很可能是在Hibernate上自己也就1/4桶水吧);所以看是关注ibatis来,说来惭愧,知道ibatis很久了,可因为项目用不到所以也懒得来看,最近才想起来。。。自己鄙视下自己先。。。。

最初看的当然是官网(http://ibatis.apache.org)的sqlMap 快速入门:

1.ibatis的配置

   ibatis的配置初步分为两块:

     a) sqlMap 框架的属性配置 - datasource等等.

     b) sqlMap的映射文件配置 -估计这就是ORM 配置

2. 映射文件配置范例和讲解

<sqlMap namespace="Person">
<select id="getPerson" resultClass="examples.domain.Person">
SELECT PER_ID as id,
PER_FIRST_NAME as firstName,
PER_LAST_NAME as lastName,
PER_BIRTH_DATE as birthDate,
PER_WEIGHT_KG as weightInKilograms,
PER_HEIGHT_M as heightInMeters
FROM PERSON
WHERE PER_ID = #value#
</select>
</sqlMap>

上面就是例子是SQL Map最简单的形式。据匹配的名字将ResultSet的列映射成Java Bean的属性(或Map的key值)。

特别需要注意的是#value#符号是输入参数,该符号表示使用了基本类型的包装类作为输入参数(resultClass不带类型)。此外但有一些限制,无法指定输出字段的数据类型,无法自动地在结果对象中载入相关的信息(即Java Bean无法使用复杂的属性);
以上的方法对性能还有轻微的不利影响,因为需要读取ResultSetMetaData的信息。

使用resultMap,可以克服以上的不足,

3.parameterClass,parameterMap;resultClass,resultMap 

   parameterClass,resultClass 不带有字段的类型;

   1)parameterMap,  resultMap  中字段类型是java.sql.Types类定义的常量名称;

     常用的数据类型包括BLOB,CHAR,CLOB,DATE,LONGVARBINARY, INTEGER,NULL,

     NUMERIC,TIME,TIMESTAMP和VARCHAR等。

  2) 对于数据表中NULLBALE的字段,必须在parameterMap和resultMap中指定字段的数据类型。
  3) 对于数据类型是DATE,CLOB或BLOB的字段,最好在parameterMap和resultMap
       中指定数据类型。
   4) 对于二进制类型的数据,可以将LONGVARBINARY映射成byte[]。
   5) 对于文本类型较大的数据,可以将CLOB映射成String。
   6) Java Bean必须拥有缺省的构造器(即无参数的构造器)。
   7) Java Bean最好实现Serializable接口,以备应用的进一步扩展。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值