写入Oracle Blob字段
/**
* 插入Blob字段
*/
public static void insertBlobField(){
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
String url = "jdbc:oracle:thin:@192.168.8.100:1521:ORCL";
String username = "shouyao";
String password = "shouyao";
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url, username, password);
conn.setAutoCommit(false);
stmt = conn.createStatement();
stmt.execute("insert into a_blob_test(id,picture) values(1,empty_blob())");
rs = stmt.executeQuery("select t.id,t.picture from a_blob_test t where t.id = 1 for update");
File f1 = new File("E:\\hel\\MyEclipse 10.0\\druggist\\code\\src\\test\\test.jpg");
FileInputStream fis = new FileInputStream(f1);
OutputStream os = null;
if(rs.next()){
oracle.sql.BLOB blob = (oracle.sql.BLOB) rs.getBlob(2);
os = blob.getBinaryOutputStream();
byte[] b = new byte[(int) f1.length()];
fis.read(b);
os.write(b);
os.flush();
}
os.close();
conn.commit();
rs.close();
stmt.close();
conn.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
if(stmt != null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
读取oracle Blob字段
/**
* 查询Blob字段存储的图片文件,并输出
*/
public static void queryBlobField(){
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
String url = "jdbc:oracle:thin:@192.168.8.100:1521:ORCL";
String username = "shouyao";
String password = "shouyao";
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url, username, password);
stmt = conn.createStatement();
rs = stmt.executeQuery("select t.id,t.picture from a_blob_test t where t.id = 1");
//文件保存的路径
File f1 = new File("E:\\hel\\MyEclipse 10.0\\druggist\\code\\src\\test\\test1.jpg");
FileOutputStream fos = new FileOutputStream(f1);
InputStream is = null;
if(rs.next()){
Blob blob = rs.getBlob(2);
is = blob.getBinaryStream();
int len =0;
byte[] b = new byte[1024];
while((len = is.read(b)) != -1){
fos.write(b,0,len);
}
}
fos.close();
is.close();
rs.close();
stmt.close();
conn.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}finally{
if(stmt != null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
分享到:
相关推荐
本文将详细介绍如何在Oracle数据库中实现Blob字段的上传和下载操作。 #### 二、Blob字段上传 Blob字段的上传通常涉及到以下几个步骤: 1. **创建Blob字段:** 首先需要在数据库表中定义一个Blob类型的字段。 2. **...
JDBC读写Oracle的CLOB字段
在Java中,我们可以使用JDBC(Java Database Connectivity)API来与Oracle数据库进行通信,其中`oracle.jdbc.driver.OraclePreparedStatement`和`oracle.jdbc.OracleResultSet`类提供了对BLOB字段的操作接口。...
本篇将详细介绍如何使用JDBC(Java Database Connectivity)与Hibernate框架来操作Oracle数据库中的BLOB字段。 首先,Oracle数据库的BLOB字段提供了对大对象的高效存储,它的性能优于LONG字段,尤其适合存储大容量...
Hibernate提供了`BlobType`等类型映射器来简化BLOB字段的读写操作。开发者可以通过实体类中的字段直接与BLOB类型的数据库字段关联,Hibernate会在后台自动处理BLOB的读取和写入过程。 总之,无论是使用JDBC还是...
【Java读写Oracle BLOB字段】在Java编程中,与Oracle数据库交互时,有时需要处理存储大对象(LOB)的数据,比如图片、音频或大型文本文件。BLOB类型用于存储二进制大对象,本文将详细介绍如何使用Java来读取和写入...
Oracle 和 WebLogic 服务器在处理 ...综上所述,Oracle 和 WebLogic 在处理 BLOB 数据时涉及到数据库操作、JDBC 交互、前端数据处理和安全性等多个方面,需要开发者具备全面的技能和经验才能有效地管理和优化这些操作。
本篇将详细介绍在Hibernate中如何处理Clob和Blob字段,以及使用特定Oracle JDBC驱动程序的优势。 首先,Hibernate通过`org.hibernate.type`包中的`ClobType`和`BlobType`来映射Clob和Blob。在实体类中,你需要定义...
为了将 SQL Server 中的 Image 类型数据导出到 Oracle 的 CLOB 字段中,我们需要使用Java 语言和 JDBC 驱动程序。下面是一个示例代码,演示如何将 SQL Server 中的 Image 类型数据导出到 Oracle 的 CLOB 字段中: ...
本教程将深入探讨如何使用Java进行Blob字段的操作,以实现将图片或文件保存到数据库中。 1. **Blob字段的理解** Blob是SQL标准定义的一种数据类型,它能够存储大量的二进制数据,如图像、音频文件、PDF文档等。在...
因此,"jdbc批量插入大字段"这个话题旨在探讨如何高效地通过Java JDBC来实现Blob字段的批量插入,以提高性能。 首先,我们需要了解JDBC(Java Database Connectivity),它是Java编程语言与各种数据库之间通信的...
在实体类中,你可以定义一个Blob类型的属性来表示数据库中的Blob字段: ```java @Entity public class MediaEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Lob ...
在Java中,我们通常使用`oracle.jdbc.driver.OracleCallableStatement`或`oracle.jdbc.driver.OraclePreparedStatement`类来处理Blob字段。`setBlob()`方法用于设置Blob值,而`getBlob()`用于获取Blob数据。 2. ...
在使用Spring与Oracle的BLOB字段交互时,确保正确配置数据源和JDBC驱动。同时,Oracle数据库的特定特性,如LOB缓存策略、LOB的生命周期管理等,也需要根据项目需求进行适当调整。 总之,Spring和Oracle结合处理BLOB...