浏览 13346 次
锁定老帖子 主题:ibatis如何支持clob 和blob
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-01-13
不过在spring 中已经提供了很好的实现,所以这又省去了很多的功夫,接下来看看ibatis是如何支持clob和blob的。 ibatis提供了TypeHandler接口,用于处理数据类型,基本的实现类为BaseTypeHandler 在spring 中,提供了AbstractLobTypeHandler作为基础类,并且提供了相应的模版方法,所有的工作由LobHandler处理。 BlobByteArrayTypeHandler 主要用于处理blob类型数据,使用byte[]来映射相应的blob ClobStringTypeHandler 用于处理clob类型数据,使用字符串来映射Clob 有一点需要注意的是,AbstractLobTypeHandler中实现了事务支持,需要用来释放相应的资源,所以一定需要在事务环境中进行。 下面是一个简单的例子: java 代码
xml如下:说明一下,在resultMap中可以通过typeHandler来指定具体的handler.在inline变量中,可以通过handler来定义相应的typeHandler xml 代码
java 代码
spring xml 配置: xml 代码
简单的测试: java 代码
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-01-15
不错的帖子,学到了。不过我们在系统中取Clob时,直接将其映射成string(oracle 10.0.2),也没有什么问题。但是update和insert时没有测试过。会不会和jdbc driver也有关系呢?
|
|
返回顶楼 | |
发表时间:2007-01-15
恩,跟jdbc driver有很大关系。oracle 10.0.2好像已经作了很大的改变,以前9i老是会报错。
|
|
返回顶楼 | |
发表时间:2007-01-15
在resultmap或inline resultmap中引用长长的typeHandler="org.springframework.orm.ibatis.support.BlobByteArrayTypeHandler"是一件很烦的事,翻了下最新文档(2006.11.30),没有发现,今天下了个sql-map-config-2.dtd,在里面有新的发现,楼主帮忙测试下,如果这种方式可行,配置应该会少很多。 晕死,代码中加XML出来老是很乱。 楼主自己下载这个文件:http://ibatis.apache.org/dtd/sql-map-config-2.dtd 然后看看里面有TypeHandler的配置节。 |
|
返回顶楼 | |
发表时间:2007-01-15
应该可行,这是在全局配置文件中,进行声明typehandler ,不过好像需要callback.
实在太长,就用typealise定义简单的类型,应该可以吧。 |
|
返回顶楼 | |
发表时间:2007-01-17
Oracle
BLOBs/CLOBs As of release 2.0.9, iBATIS includes default BLOB/CLOB handlers. If you are using an older version of Oracle (pre-10g), then you might have to write your own Custom Tag Handler to access the proprietary Oracle API to work with LOBs. 原来如此。 |
|
返回顶楼 | |
发表时间:2007-01-18
看来你的文档看的很仔细,精神可嘉
|
|
返回顶楼 | |