`
edisonlv2010
  • 浏览: 43528 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

利用lobHandler实现LOB列的查询

 
阅读更多
Spring提供的DefaultLobHandler可以用来对lob类型的数据列进行相关的操作。如以下代码所示,image_code列的数据类型为blob,下面的代码展示了一个查询示例。

public byte[] queryUserImage(String targetUserId) {
	String sql = "SELECT image_code FROM pf_image WHERE user_id = ?";
	final String BLOB_KEY = "BLOB";
	@SuppressWarnings({ "unchecked", "rawtypes" })
	List<Map<String, byte[]>> list = jdbcTemplate.query(sql, new Object[] { targetUserId }, new RowMapper() {
		public Object mapRow(ResultSet rs, int i) throws SQLException {
			Map<String, byte[]> results = new HashMap<String, byte[]>();
			byte[] byteArr = lobHandler.getBlobAsBytes(rs, "image_code");
			results.put(BLOB_KEY, byteArr);
			return results;
		}
	});
	return list.get(0).get(BLOB_KEY);
}


当然如果不想显示编写SQL代码来操作lob类型的列,可以通过ORM框架自身提供的映射机制来进行常规操作。如JPA标准中的 @LOB 注解。

private byte[] userImage;

@Lob
@Basic(fetch = FetchType.LAZY)
@Column(name = "user_image", columnDefinition = "BLOB")
public byte[] getUserImage() {
	return userImage;
}
分享到:
评论

相关推荐

    springmvcdemo

    下载之后您只需要1.根据实体类创建数据库 2.jdbc.property填写正确 3.项目加载 运行 这里你将学习到: ...10 利用spring提供的lobHandler处理数据库中的lob列 11 利用log4j输出程序日志 12 无刷新翻页

    spring+hibernate操作oracle的clob字段

    &lt;bean id="lobHandler" lazy-init="true" class="org.springframework.jdbc.support.lob.OracleLobHandler"&gt; ``` 3. **事务管理** 对CLOB字段的操作通常涉及数据库事务,因此需要在具有事务管理的方法...

    关于在Hibernate中对于Clob,Blob字段的处理方法

    - 使用`lobHandler`:在处理大数据时,可以自定义`LobHandler`,优化读写性能。例如,使用`DefaultLobHandler`或`DirectBlobHandler`。 ```java LobCreator lobCreator = session.getLobHandler().getLobCreator...

    Hibernate操作Oarcle中Clob、Blob字段小结

    - 使用`lobHandler`:Hibernate提供`LobHandler`接口,可以自定义Clob和Blob的处理方式,提高性能,例如使用Oracle的NClob实现。 - 分块读写:对于大数据,可以使用`lobCreator.createClob()`创建可写Clob,然后...

    SSH+Oracle上传图片

    在DAO实现类中,利用Hibernate的`HibernateTemplate`进行持久化操作,例如`saveAdmin`方法保存包含图片数据的Admin对象到数据库。 ```java public Admin saveAdmin(Admin admin) { this.getHibernateTemplate()....

    Spring源代码解析(八):Spring驱动Hibernate的实现.doc

    接着,如果提供了数据源(`dataSource`)、JTA事务管理器(`jtaTransactionManager`)或自定义的LobHandler,它们会被设置到线程局部变量中。这样做是为了在后续的SessionFactory配置过程中,这些资源能与当前线程绑定,...

    ssh(structs,spring,hibernate)框架中的上传下载

    BlobByteArrayType使用从sessionFactory获取的Lob操作句柄lobHandler将byte[]的数据保存到Blob数据库字段中。这样,我们就再没有必要通过硬编码的方式,先insert然后再update来完成Blob类型数据的持久化,这个原来难...

    spring+hibernate 解决大字段(clob)

    &lt;bean id="lobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler" lazy-init="true"&gt; ``` 这里的关键在于配置了`lobHandler` Bean来处理CLOB和BLOB类型的字段。 ##### 2. Hibernate ...

    mysql6.0连接中的几个问题mysql6.xx.docx

    当使用Hibernate整合连接MySQL时,可能会遇到`Disabling contextual LOB creation as createClob() method threw error : Java.lang.reflect.InvocationTargetException`的错误。这通常是因为Hibernate无法创建CLOB...

    精心整理的ssh2 一些错误问题的记录(推荐)

    该错误通常出现在Spring框架中,当试图处理大型对象(如BLOB或CLOB)但Spring配置中未提供适当的LobHandler时会抛出。为了解决这个问题,需要在Spring配置文件中添加对LobHandler的支持。 ### 错误六:at java.util...

    imagedb图片的上传与下载

    1,小例子使用功能强大的Spring框架作为项目的管理...2,数据层使用JDBC,并使用Spring提供的LobHandler来处理大个资源,如图片等。 3,项目中集成使用quartz来进行调度。 4,Web层使用Struts2实成文件的上传与下载。

    多数据库的配置.pdf

    在某些复杂的应用场景下,一个系统可能需要连接多个数据库,比如为了实现数据隔离、负载均衡或业务分离。本篇将详细讲解如何配置多数据库环境,主要涉及Hibernate和Spring框架的集成。 1. **Hibernate配置**: ...

    SPRING API 2.0.CHM

    LobHandler LobRetrievalFailureException LocalConnectionFactoryBean LocalContainerEntityManagerFactoryBean LocalDataSourceConnectionProvider LocalDataSourceConnectionProvider ...

Global site tag (gtag.js) - Google Analytics