`

hibernate SerializableBlob转byte数组

 
阅读更多

      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;
			}
		}

 

希望能帮更多人解决问题!

分享到:
评论

相关推荐

    hibernate array 数组映射

    在Java的持久化框架Hibernate中,数组映射是一种常见的数据模型转换方式,它允许我们将数据库中的数据以数组的形式存储在Java对象中。本篇将详细探讨`hibernate array 数组映射`的相关知识点,包括其原理、配置、...

    Hibernate读取blob字段

    byte[] bytes = new byte[(int) image.getImageData().length()]; is.read(bytes); FileOutputStream fos = new FileOutputStream("image.jpg"); fos.write(bytes); fos.close(); transaction.commit(); ...

    Blob、InputStream、byte 互转

    `Hibernate.createBlob()`方法接受一个`byte[]`数组作为参数,返回一个新的`Blob`对象。 #### InputStream与byte[]之间的转换 1. **InputStream转byte[]** ```java private byte[] inputStreamToByte...

    Java 类型相互转换byte[]类型,Blob类型详细介绍

    在Java编程中,数据存储和传输常常涉及到不同类型的数据转换,特别是在数据库操作中,与二进制大数据相关的类型如`byte[]`(字节数组)和`Blob`(Binary Large Object)之间的转换尤为常见。本篇文章将详细讲解如何...

    Hibernate 注解大全

    private byte[] profileImage; ``` 12. `@Transient`: 标记为非持久化字段,不会映射到数据库。 ```java @Transient private String temporaryData; ``` 以上只是Hibernate注解的一部分,实际上还有更多的高级特性...

    Hibernate对BLOB CLOB操作

    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框架与jQuery的AJAX功能来处理JSON二维数组,特别是在实现菜单联动下拉框的场景中。SSH1(Spring、Struts、Hibernate)是Java开发中的一个流行MVC框架组合,而jQuery的AJAX功能则...

    hibernate和java类型转换

    hibernate和java类型转换,hibernate和java类型转换

    hibernate的三种状态及其相互转换

    这是一个讲解了关于hibernate三种状态之间的转换,如果想知道他们之间的相关总结和理解,这是一个不错的选择

    Hibernate-tools解决hbm.xml中文注释乱码和生成实体类注释

    在Java的持久层框架中,Hibernate是一个非常流行的ORM(对象关系映射)工具,它极大地简化了数据库操作。然而,在实际开发过程中,我们可能会遇到一些问题,比如在处理`hbm.xml`文件中的中文注释时出现乱码,或者...

    Hibernate 配置各种数据库

    Hibernate 配置各种数据库 Hibernate 是一个基于 Java 的持久层框架,提供了一个抽象的数据访问层,能够与多种数据库进行集成。在 Hibernate 的配置文件中,我们可以配置不同的数据库连接,包括驱动程序、URL 等...

    Hibernate入门到精通

    "Hibernate入门到精通" Hibernate 是一个基于Java的ORM(Object-Relational Mapping,对象关系映射)框架,它提供了一种简洁高效的方式来访问和操作关系数据库。下面是 Hibernate 的主要知识点: Hibernate 简介 ...

    hibernate jar包:hibernate-commons-annotations-4.0.1.Final.jar等

    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-3.2.4

    HibernateTools是Java开发人员在使用Hibernate ORM框架时的有力辅助工具集,主要目的是为了提高开发效率,简化数据库操作。在HibernateTools 3.2.4版本中,它包含了一系列的特性与插件,以支持更便捷地进行对象关系...

    hibernate和MySQL的jar

    标题中的“hibernate和MySQL的jar”指的是Hibernate ORM框架与MySQL数据库之间的连接库。Hibernate是一种流行的Java对象关系映射(ORM)工具,它允许开发者使用面向对象的编程方式来操作数据库,而无需直接编写SQL...

    hibernate3中通过nativesql或取部分字段并映射为具体对象的实现

    在上述代码中,我们通过`addScalar()`方法指定了每个字段的数据类型,并将查询结果作为Object数组列表返回。然后遍历结果,手动将数据赋值给User对象。 另一种方式是使用`setResultTransformer()`,它可以自动将...

    Hibernate将图片插入数据库

    在Hibernate中,我们通常使用`byte[]`数组来表示BLOB数据。 1. **创建实体类**: 在Hibernate中,我们首先需要创建一个实体类来映射数据库表。对于图片数据,我们可以定义一个属性,例如`byte[] imageData`,并使用`...

    hibernate3.zip 包含hibernate3.jar

    Hibernate3 是一个非常重要的Java持久化框架,它简化了数据库操作,使得开发人员可以更加专注于业务逻辑而不是数据库的细节。这个`hibernate3.zip`压缩包包含了`hibernate3.jar`,它是Hibernate 3版本的核心库,包含...

    Hibernate3的依赖包

    Hibernate3是一个广泛使用的Java对象关系映射(ORM)框架,它允许开发者用面向对象的方式处理数据库操作,极大地简化了Java应用程序与数据库之间的交互。在这个"Hibernate3的依赖包"中,包含了运行Hibernate3应用...

Global site tag (gtag.js) - Google Analytics