SerializableBlob全称org.hibernate.lob.SerializableBlob,是在做hibernate SQL查询二进制文件(图片)时未做封装产生的,它和byte数组是不能直接强制转换的,而我们需要的却是byte数组,所以需要有方法进行转换,上网找了下,是利用流进行转换的,应用在项目中能够解决问题,代码如下:
byte[] bytes;
BufferedInputStream bis = null;
try {
SerializableBlob blob = (SerializableBlob) obj[3];
bis = new BufferedInputStream(blob.getBinaryStream());
bytes = new byte[(int)blob.length()];
int len = bytes.length;
int offest = 0;
int read = 0;
while(offest<len&&(read=bis.read(bytes, offest, len-offest))>0){
offest+=read;
}
} catch (Exception e) {
bytes = null;
e.printStackTrace();
} finally{
if(bis!=null){
bis.close();
bis = null;
}
}
希望能帮更多人解决问题!
分享到:
相关推荐
在Java的持久化框架Hibernate中,数组映射是一种常见的数据模型转换方式,它允许我们将数据库中的数据以数组的形式存储在Java对象中。本篇将详细探讨`hibernate array 数组映射`的相关知识点,包括其原理、配置、...
byte[] bytes = new byte[(int) image.getImageData().length()]; is.read(bytes); FileOutputStream fos = new FileOutputStream("image.jpg"); fos.write(bytes); fos.close(); transaction.commit(); ...
`Hibernate.createBlob()`方法接受一个`byte[]`数组作为参数,返回一个新的`Blob`对象。 #### InputStream与byte[]之间的转换 1. **InputStream转byte[]** ```java private byte[] inputStreamToByte...
在Java编程中,数据存储和传输常常涉及到不同类型的数据转换,特别是在数据库操作中,与二进制大数据相关的类型如`byte[]`(字节数组)和`Blob`(Binary Large Object)之间的转换尤为常见。本篇文章将详细讲解如何...
private byte[] profileImage; ``` 12. `@Transient`: 标记为非持久化字段,不会映射到数据库。 ```java @Transient private String temporaryData; ``` 以上只是Hibernate注解的一部分,实际上还有更多的高级特性...
import org.hibernate.lob.SerializableBlob; import org.hibernate.lob.SerializableClob; import org.hibernate.type.BlobType; import org.hibernate.type.ClobType; ``` 在Hibernate中,BLOB和CLOB可以通过`...
在本文中,我们将探讨如何使用SSH1框架与jQuery的AJAX功能来处理JSON二维数组,特别是在实现菜单联动下拉框的场景中。SSH1(Spring、Struts、Hibernate)是Java开发中的一个流行MVC框架组合,而jQuery的AJAX功能则...
hibernate和java类型转换,hibernate和java类型转换
这是一个讲解了关于hibernate三种状态之间的转换,如果想知道他们之间的相关总结和理解,这是一个不错的选择
在Java的持久层框架中,Hibernate是一个非常流行的ORM(对象关系映射)工具,它极大地简化了数据库操作。然而,在实际开发过程中,我们可能会遇到一些问题,比如在处理`hbm.xml`文件中的中文注释时出现乱码,或者...
Hibernate 配置各种数据库 Hibernate 是一个基于 Java 的持久层框架,提供了一个抽象的数据访问层,能够与多种数据库进行集成。在 Hibernate 的配置文件中,我们可以配置不同的数据库连接,包括驱动程序、URL 等...
"Hibernate入门到精通" Hibernate 是一个基于Java的ORM(Object-Relational Mapping,对象关系映射)框架,它提供了一种简洁高效的方式来访问和操作关系数据库。下面是 Hibernate 的主要知识点: Hibernate 简介 ...
Hibernate.jar包,Hibernate可以应用在任何使用JDBC的场合,包含 hibernate-commons-annotations-4.0.1.Final.jar hibernate-core-4.1.12.Final.jar hibernate-ehcache-4.1.12.Final.jar hibernate-entitymanager-...
HibernateTools是Java开发人员在使用Hibernate ORM框架时的有力辅助工具集,主要目的是为了提高开发效率,简化数据库操作。在HibernateTools 3.2.4版本中,它包含了一系列的特性与插件,以支持更便捷地进行对象关系...
标题中的“hibernate和MySQL的jar”指的是Hibernate ORM框架与MySQL数据库之间的连接库。Hibernate是一种流行的Java对象关系映射(ORM)工具,它允许开发者使用面向对象的编程方式来操作数据库,而无需直接编写SQL...
在上述代码中,我们通过`addScalar()`方法指定了每个字段的数据类型,并将查询结果作为Object数组列表返回。然后遍历结果,手动将数据赋值给User对象。 另一种方式是使用`setResultTransformer()`,它可以自动将...
在Hibernate中,我们通常使用`byte[]`数组来表示BLOB数据。 1. **创建实体类**: 在Hibernate中,我们首先需要创建一个实体类来映射数据库表。对于图片数据,我们可以定义一个属性,例如`byte[] imageData`,并使用`...
Hibernate3 是一个非常重要的Java持久化框架,它简化了数据库操作,使得开发人员可以更加专注于业务逻辑而不是数据库的细节。这个`hibernate3.zip`压缩包包含了`hibernate3.jar`,它是Hibernate 3版本的核心库,包含...
Hibernate3是一个广泛使用的Java对象关系映射(ORM)框架,它允许开发者用面向对象的方式处理数据库操作,极大地简化了Java应用程序与数据库之间的交互。在这个"Hibernate3的依赖包"中,包含了运行Hibernate3应用...