`
swordinhand
  • 浏览: 312923 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

JDBC4.0插入blob真方便

    博客分类:
  • JAVA
阅读更多
今天试用了一下oracle的支持JDBC4.0标准的客户端ojdbc6.jar,发现用了这个之后,插入blob字段变得简单多了。

以前如果想向oracle数据库里插入一个blob的字段,需要先执行一条insert语句,插入个empty_blob,然后再select for update,取出来之后把Blob字段cast成oracle自己的BLOB类型,然后调用BLOB的setBinaryStream()方法获得一个OutputStream,再向这个OutputStream中写入内容,最后再提交,这种方法的介绍网上到处都是,不用多说。

现在有了JDBC4.0,这个过程变简单了许多,调用Connection的createBlob()方法创建一个Blob对象,调用Blob对象的setBinaryStream()方法获得一个OutputStream,再向这个OutputStream中写入内容,然后直接把Blob写入到数据库里就行了。

Blob blob = conn.createBlob();
            OutputStream out = blob.setBinaryStream(0);
            byte[] temp = new byte[4096];
            int length;
            while ((length = is.read(temp)) != -1) {
                out.write(temp, 0, length);
            }

PreparedStatement pstmt = conn
					.prepareStatement("insert into t_blob_test(name,content) values(?,?)");
			pstmt.setString(1, "name2");
            pstmt.setBlob(2, blob);
			pstmt.executeUpdate();


分享到:
评论
4 楼 leaos 2016-06-07  
sdsa
3 楼 oztime 2012-02-22  
swordinhand 写道
oztime 写道
这段代码你操作过吗?我执行报错,
OutputStream out = blob.setBinaryStream(0);
这样改没错
OutputStream out = blob.setBinaryStream(1);

谢谢!

我查了一下jdk文档,文档上说这个值应该至少是1
不过这段代码我确实用oracle的ojdbc6.jar执行成功过
我当时是照着Core Java上的代码写的
我刚才又看了一下,Core Java的例子也是用0
Blob coverBlob = connection.createBlob();
int offset = 0;
OutputStream out = coverBlob.setBinaryStream(offset);

不过还是按照标准的好,你用1没问题就用1呗

谢谢你的回复!
2 楼 swordinhand 2012-02-15  
oztime 写道
这段代码你操作过吗?我执行报错,
OutputStream out = blob.setBinaryStream(0);
这样改没错
OutputStream out = blob.setBinaryStream(1);

谢谢!

我查了一下jdk文档,文档上说这个值应该至少是1
不过这段代码我确实用oracle的ojdbc6.jar执行成功过
我当时是照着Core Java上的代码写的
我刚才又看了一下,Core Java的例子也是用0
Blob coverBlob = connection.createBlob();
int offset = 0;
OutputStream out = coverBlob.setBinaryStream(offset);

不过还是按照标准的好,你用1没问题就用1呗
1 楼 oztime 2012-02-09  
这段代码你操作过吗?我执行报错,
OutputStream out = blob.setBinaryStream(0);
这样改没错
OutputStream out = blob.setBinaryStream(1);

谢谢!

相关推荐

    使用JDBC4.0操作Oracle中BLOB类型的数据方法

    在Java的JDBC4.0版本中,Oracle数据库的BLOB类型数据操作变得更加方便。BLOB(Binary Large Object)是用来存储大对象,如图像、音频或视频文件等二进制数据的数据库字段类型。以下是对使用JDBC4.0操作Oracle中BLOB...

    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 操作oracle blob数据jdbc ...

    sqljdbc4.0-4.2.zip

    SQLJDBC 4.0 至 4.2 版本是Microsoft提供的Java数据库连接(JDBC)驱动程序,用于在Java开发环境中与Microsoft SQL Server数据库进行通信。这些驱动程序让Java开发者能够利用SQL语言执行数据库操作,如查询、更新和...

    使用JDBC4.0处理Oracle中BLOB类型的数据

    在Java的JDBC4.0版本中,处理Oracle数据库中的BLOB(Binary Large Object)类型数据是一项常见的任务,尤其在存储和检索大容量的二进制数据,如图像、音频或视频文件时。本篇文章将深入讲解如何使用JDBC4.0与Oracle...

    jdbc批量插入大字段

    因此,"jdbc批量插入大字段"这个话题旨在探讨如何高效地通过Java JDBC来实现Blob字段的批量插入,以提高性能。 首先,我们需要了解JDBC(Java Database Connectivity),它是Java编程语言与各种数据库之间通信的...

    JDBC中操作Blob、Clob等对象

    ### JDBC中操作Blob、Clob等对象 #### 一、简介 在JDBC(Java Database Connectivity)编程中,Blob和Clob是非常重要的数据类型。Blob(Binary Large Object)主要用于存储二进制大对象,如图像、音频文件等;而Clob...

    使用Jdbc4操作Blob,Clob

    以下是一个简单的示例,展示如何使用JDBC4插入一个Blob和Clob: ```java // 假设我们已经获取了Connection PreparedStatement pstmt = connection.prepareStatement( "INSERT INTO my_table (blob_column, clob_...

    向数据库插入blob数据实例源码--在mysql中通过

    本实例将详细介绍如何在MySQL数据库中插入Blob数据,并提供源码示例。 1. **Blob类型介绍** MySQL中的Blob类型有四种变体:TinyBlob、Blob、MediumBlob和LongBlob,分别对应不同的存储大小限制。TinyBlob最多存储...

    JDBC+Hibernate将Blob数据写入Oracle

    在Oracle数据库中,BLOB类型的字段具有特殊的处理方式,尤其在使用JDBC(Java Database Connectivity)和Hibernate框架时,需要特别注意其写入过程。以下是对“JDBC+Hibernate将Blob数据写入Oracle”这一主题的深入...

    使用JDBC4.0操作XML类型的字段(保存获取xml数据)的方法

    在Java数据库连接(JDBC)4.0版本中,一个重要的新特性是对XML数据类型的原生支持。这一特性使得Java程序员能够更方便地在数据库中存储和检索XML文档,而无需进行繁琐的类型转换。在SQL 2003标准中引入XML数据类型后...

    QT-Mysql-Blob.zip_mysql blob_qt blob 文件_qt blob类型_qt的blob

    例如,如果你想插入一个图像文件到BLOB字段,你需要先将图像文件读入QByteArray,然后在SQL插入语句中使用这个数组。 以下是一个简单的示例,展示了如何在Qt中插入BLOB数据到MySQL: ```cpp // 假设已连接到MySQL...

    mysql oracle 插入blob数据实例源码

    本篇文章将深入探讨如何在MySQL和Oracle数据库中插入Blob数据,并提供相关的源码实例。 一、MySQL中的Blob数据插入 MySQL提供了多种方式插入Blob数据,包括使用PreparedStatement接口。以下是一个Java源码示例: ...

    .NET向orcale数据库中插入blob(图片)类型

    .NET向orcale数据库中插入blob(图片)类型 C#向orcale数据库插入和读取图片 .NET向orcale数据库插入图片 .net向orcale数据库操作blob数据 建表语句CREATE TABLE PIC(PICT BLOB ) 说明:如果打不开直接看Form1.cs,两...

    上传图片,保存到数据库,jdbc操作blob

    首先,我们创建了一个FileInputStream对象来读取图片文件,然后使用JDBC连接数据库,并执行INSERT语句将图片名称和空BLOB对象插入到数据库中。接着,我们使用PreparedStatement对象执行SELECT语句来获取刚刚插入的...

    插入、取出Blob类型的数据代码示例

    本示例主要讲解如何在Oracle数据库中操作Blob类型的数据,包括插入和取出。 首先,我们需要理解Oracle数据库对Blob类型的处理。Blob是Oracle中的一个大对象数据类型,它可以存储最多4GB的二进制数据。Blob数据可以...

    向orcale数据库中插入blob类型的数据,插入一张图片的示例

    向orcale数据库中插入blob类型的数据,插入一张图片的示例,由于本人在完成时遇到了很多问题,最终解决了,于是整理下来,方便学习交流

    jdbc_blob_clob.rar

    标题“jdbc_blob_clob.rar”暗示了这个压缩包文件包含的内容与Java Database Connectivity (JDBC) 中处理Blob和Clob对象相关的知识。Blob是Binary Large Object的缩写,用于存储大块二进制数据,如图片、音频或视频...

Global site tag (gtag.js) - Google Analytics