最近经常遇到要对blob或clob类型数据进行处理的,有通过jdbc方式的,也有hibernate方式的,这期间遇到了许多问题也解决了许多问题,由此萌发出就此写点东西的想法。
因为之前没有处理过blob类型数据,只知道是存储文件,图片等二进制数据的。首先遇到的问题就是插入blob数据,在网上查了一些资料,主要有几步操作,首先是插入空的blob数据,然后查找该条记录,得到指向该条记录的指针,最后将该blob转换成输入流形式,将源文件内容写入到该输入流中,就完成了blob的插入操作。jdbc和hibernate代码虽不同,但实现方式基本上是一样的。在这遇到的问题是数据库中的字段是clob类型的,我在处理时将其读取出来,然后强制转换为blob类型进行处理,结果是不行的,会报类类型异常错误,所以操作方式要根据数据库中字段的类型来决定,不过两种类型的操作方式也差不多,只不过是写数据时有些许差异,一种是二进制的方式写,一种是字节流的方式。
第二个问题是更新blob数据,一开始我是按照插入的方式照搬过来的,而且发现运行也成功,但不经意之间发现一个问题,数据库中存储的内容和我修改后的文件内容不一致,平白无故会多出一些其它字符。经试验几次后发现,主要原因是上传的文件的大小小于之前插入的文件大小,导致多出的空间,数据库就自动给其添加内容。在网上搜索后发现解决方法是先将之前的blob数据清空,再重新插入。经修改jdbc方式通过执行,但在hibernate中却出错,我通过empty_blob()函数将其设为空,执行时就会出现‘空数据无法进行插入’的错误提示,一时无法解决。但想到另一种解决方式,既然是由于大小引起的,就在写数据时,将byte的空间扩大,使其大于或等于之前的文件大小,经测试后可以通过。
除了之前两个问题之外,当然还遇到些小问题。这些都说明基础类库的掌握和熟练程度还不够,路漫漫其修远兮,吾将上下而求索。
分享到:
相关推荐
jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc ...
但是用通常的数据窗口技术无法将 BLOB 类型数据加入到数据库中,也不能将数据库中相应字段的数据提取出来,即使在程序中直接使用 UPDATE 和 SELECT 等 SQL 语句也是无法对 BLOB 类型数据进行操作的。 在 Power...
在IT领域,VB,全称Visual Basic,是一种由微软公司开发的可视化的编程工具,它以其易学易用的特点在编程界占据一席之地。在处理数据库中的BLOB(Binary Large Object)数据时,VB提供了丰富的功能。BLOB类型通常...
2. **查询Blob数据**:编写SQL查询语句,从包含Blob数据的表中检索所需记录。例如,假设我们有一个名为`images`的表,其中`image_data`是Blob列,`image_name`是图片的名称,那么查询语句可能如下: ```sql SELECT...
BLOB 是一种二进制数据类型,用于存储大规模的二进制数据,如图片、音频、视频等。在 C# 中,我们可以使用 FileStream 对象来读取 BLOB 数据。 在给定的代码中,我们可以看到,使用 FileStream 对象来读取图片文件...
本示例主要讲解如何在Oracle数据库中操作Blob类型的数据,包括插入和取出。 首先,我们需要理解Oracle数据库对Blob类型的处理。Blob是Oracle中的一个大对象数据类型,它可以存储最多4GB的二进制数据。Blob数据可以...
在SQL Server数据库系统中,存取BLOB(Binary Large OBject)数据是一种复杂的问题。BLOB数据是指非结构化的大型二进制数据,例如图片、音频、视频等。这种数据类型的特点是长度不确定,最大可达2GB。这使得BLOB数据...
下面我们将深入探讨Hibernate对BLOB和CLOB的操作。 首先,我们来看一下如何在数据库中创建包含BLOB和CLOB字段的表。例如,以下SQL语句创建了一个名为`users`的表,其中`uids`为主键,`img`为BLOB类型,`txt`为CLOB...
### Hibernate 对 Blob 类型字段...综上所述,通过上述步骤可以有效地利用 Hibernate 进行 Blob 类型字段的数据添加操作。开发者在实际应用中可以根据不同的需求选择合适的处理方式,并注意处理过程中的各种细节问题。
在SQL中,BLOB(Binary Large Object)是一种特殊的数据类型,用于存储大量的二进制数据,如图片、音频或视频文件。BLOB数据的操作通常涉及如何将这些文件存入数据库以及如何从数据库中检索和展示它们。在第16章中,...
在数据库迁移或数据同步的过程中,有时需要将含有大对象(LOB,包括BLOB和CLOB)的数据从一个数据库系统复制到另一个不完全支持LOB的数据库系统。本例中,我们讨论如何将DB2数据库中的BLOB数据类型复制到Oracle...
综上所述,本实例展示了如何在MySQL数据库中创建Blob字段、插入和查询Blob数据。源码中可能包含了类似的实现,通过解压提供的"向数据库插入blob数据实例源码"压缩包,你可以查看并运行完整的Java代码示例。
ADO是Microsoft提供的一种用于访问数据源的接口,它提供了对ODBC(Open Database Connectivity)和OLE DB的高层抽象。通过ADO,开发者可以轻松地连接到各种类型的数据库,包括SQL Server、Access等,并执行CRUD操作...
Blob类型数据,全称为Binary Large Object,是一种在数据库系统中用于存储大量二进制数据的字段类型。在SQL Server中,这种数据类型通常包括image、varbinary(max)和binary(max)。这些字段类型的设计目标是处理图像...
以下是对“JDBC+Hibernate将Blob数据写入Oracle”这一主题的深入解析。 ### JDBC与Oracle BLOB的交互 #### 1. 理解Oracle BLOB特性 在Oracle中,BLOB用于存储大量的二进制数据,如图像文件。与传统的文本或数字...
在Java的持久化框架Hibernate中,BLOB(Binary Large Object)数据类型被用来存储大量二进制数据,如图片、音频、视频或者大型文本文件。本文将深入探讨Hibernate如何读取BLOB类型的数据,以及在实际开发中需要注意...
总结来说,PB12.5调用zlib对Blob数据进行压缩是一种高效的数据处理手段,通过集成zlib库,开发者可以轻松地在PB环境中实现数据的压缩和解压缩,从而优化存储和传输性能。正确理解和应用这一技术,对于提升应用程序的...
对Blob大数据的操作——图片上传与显示 在本文中,我们将探讨如何使用SSH2框架将图片上传到Oracle数据库中,并成功地将其转换成Blob数据存储。同时,我们还将介绍如何在Service层使用事务处理代理,以避免报错。 ...
在本主题中,我们将详细探讨如何使用ADO(ActiveX Data Objects)在VC++环境中对BLOB数据进行存取操作。 1. **什么是ADO?** ADO是微软开发的一种数据访问接口,它提供了与各种数据源(如SQL Server、Oracle等)...