今天试用了一下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();
分享到:
相关推荐
在Java的JDBC4.0版本中,Oracle数据库的BLOB类型数据操作变得更加方便。BLOB(Binary Large Object)是用来存储大对象,如图像、音频或视频文件等二进制数据的数据库字段类型。以下是对使用JDBC4.0操作Oracle中BLOB...
在Java的JDBC4.0版本中,处理Oracle数据库中的BLOB(Binary Large Object)类型数据是一项常见的任务,尤其在存储和检索大容量的二进制数据,如图像、音频或视频文件时。本篇文章将深入讲解如何使用JDBC4.0与Oracle...
在Java数据库连接(JDBC)4.0版本中,一个重要的新特性是对XML数据类型的原生支持。这一特性使得Java程序员能够更方便地在数据库中存储和检索XML文档,而无需进行繁琐的类型转换。在SQL 2003标准中引入XML数据类型后...
`占位符来插入`Blob`、`Clob`和`NClob`对象,简化了大数据类型的处理。 6. **行集和批处理**: `RowSet`接口的实现更加完善,支持离线操作和事件通知,批处理功能也得到了加强,提高了批量操作的性能。 7. **更好的...
随着时间的推移,微软发布了更高版本的JDBC驱动,例如sqljdbc4.jar,提供了对JDBC 4.0规范的支持,以及更多增强功能。开发者应考虑升级到更现代的驱动,以利用最新的功能和改进。 总结,sqljdbc1.2.jar作为SQL ...
在Java环境中,JDBC驱动程序扮演着桥梁的角色,将Java代码与数据库系统连接起来,实现数据的查询、更新、插入和删除等操作。 1. JDBC API:JDBC 是一种Java标准,提供了一组接口和类,让开发者可以编写跨平台的...
- **JDBC 4.0**:随Java SE 6发布,引入了自动类型映射等功能。 JDBC的核心结构包括两部分:**规范**和**实现**。规范是由Sun Microsystems定义的一组接口,而实现则是由具体的数据库厂商提供的驱动程序。为了使用...
1. **类型4驱动**:该驱动是纯Java实现,无需数据库特定的客户端库,可以在任何支持Java的平台上运行,实现了JDBC 3.0和4.0规范。 2. **高性能**:驱动优化了网络通信和数据传输,减少了数据库往返次数,提升了整体...