Spring让LOB数据操作变得简单易行 - 编程入门网
lt;?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping auto-import="true" default-lazy="false">
<class name="com.baobaotao.domain.Post" table="t_post">
<id name="postId" column="post_id">
<generator class="identity" />
</id>
<property name="userId" column="user_id"/>
<property name="postText" column="post_text"
type="org.springframework.orm.hibernate3.support.ClobStringType"/>①对应 CLOB 字段
<property name="postAttach" column="post_attach"
type="org.springframework.orm.hibernate3.support.BlobByteArrayType"/>② BLOB 字段
<property name="postTime" column="post_time" type="date" />
<many-to-one name="topic" column="topic_id" class="com.baobaotao.domain.Topic" />
</class>
</hibernate-mapping>
Spring让LOB数据操作变得简单易行(7)时间:2011-02-14 IBM 陈雄华postText 为 String 类型的属性,对应数据库的 CLOB 类型,而 postAttach 为 byte[] 类型的属性,对应数据库的 BLOB 类型。分别使用 Spring 所提供的相应 UserType 实现类进行配置,如 ① 和 ② 处所示。 在配置好映射文件后,还需要在 Spring 配置文件中定义 LOB 数据处理器,让 SessionFactory 拥有处理 LOB 数据的能力: 清单 11 . 将 LobHandler 注入到 SessionFactory 中
在一般的数据库(如 DB2)中,仅需要简单地使用 HibernateTemplate#save(Object entity) 等方法就可以正确的保存 LOB 数据了。如果是 Oracle 9i 数据库,还需要配置一个本地 JDBC 抽取器,并使用特定的 LobHandler 实现类,如 清单 4 所示。 使用 LobHandler 操作 LOB 数据时,需要在事务环境下才能工作,所以必须事先配置事务管理器,否则会抛出异常。 在 iBatis 中操作 LOB 数据 iBatis 为处理不同类型的数据定义了一个统一的接口:com.ibatis.sqlmap.engine.type.TypeHandler。这个接口类似于 Hibernate 的 UserType。iBatis 本身拥有该接口的众多实现类,如 LongTypeHandler、DateTypeHandler 等,但没有为 LOB 类型提供对应的实现类。Spring 在 org.springframework.orm.ibatis.support 包中为我们提供了几个处理 LOB 类型的 TypeHandler 实现类: BlobByteArrayTypeHandler:将 BLOB 数据映射为 byte[] 类型; BlobSerializableTypeHandler:将 BLOB 数据映射为 Serializable 类型的对象; ClobStringTypeHandler:将 CLOB 数据映射为 String 类 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |