//保存图片
public boolean savePhoto(String rid,String idcard){
Connection conn=null;
PreparedStatement pstmt=null;
FileInputStream file=null;
Statement stmt=null;
ResultSet rs=null;
InputStream in=null;
FileOutputStream out=null;
try {
//基本的jdbc操作
// Class.forName("oracle.jdbc.driver.OracleDriver");
// conn=DriverManager.getConnection("jdbc:oracle:thin:@192.168.3.245:1521:orcl", "cdc", "111111");
//从hibernate那获得connection
Session session = this.getSession();
conn =session.connection();
conn.setAutoCommit(false);
// if(rid == null || rid.equals("")){
// pstmt=conn.prepareStatement("insert into t_a_resident_archives(rid,idcard,photo) values(cdc_seq.NEXTVAL,?,?)");
// pstmt.setString(1, idcard);
// file=new FileInputStream("f:\\3.jpg");
// System.out.println(file.available());
// pstmt.setBlob(2, file);
// }else{
pstmt=conn.prepareStatement("update t_a_resident_archives set photo=? where rid=?");
pstmt.setString(2, rid);
file=new FileInputStream("f:\\3.jpg");
System.out.println(file.available());
pstmt.setBlob(1, file);
// }
pstmt.executeUpdate();
conn.commit();
//读文件
stmt=conn.createStatement();
String sql="select photo from t_a_resident_archives where rid=" + rid;
rs=stmt.executeQuery(sql);
byte[] buffer=new byte[1024];
Blob blob=null;
while(rs.next()){
blob=rs.getBlob(1);
}
in=blob.getBinaryStream();
//存放文件的路径
out=new FileOutputStream("D:\\888.jpg");
int number=in.read(buffer);
//把读取的数据放到字节数组,并写到文件中
while(number!=-1){
out.write(buffer,0,number);
number=in.read(buffer);
}
rs.close();
stmt.close();
file.close();
in.close();
out.close();
conn.close();
return true;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
分享到:
相关推荐
前端接收到数据后,可以通过Blob对象对这些数据进行处理,然后创建一个URL,这个URL可以被浏览器识别为一个可下载的文件链接。 首先,我们需要配置请求设置,确保`responseType`设置为`arraybuffer`或`blob`,这取...
在DELPHI中,处理这些大型对象时需要特殊的技术和策略。本篇文章将深入探讨DELPHI中如何有效地进行CLOB和BLOB的存取处理。 CLOB主要用来存储大文本数据,如长篇文章、XML文档或JSON字符串,而BLOB则用于存储大量的...
Blob对象允许开发者存储和传输非结构化的数据,这对于Web应用程序尤其是那些涉及多媒体处理的应用至关重要。Blob.js是一个JavaScript库,旨在为不支持Blob API的浏览器,特别是旧版本的Internet Explorer(IE),...
### 大文本(Blob)对象处理 #### Blob类型概述 在数据库系统中,Blob(Binary Large Object)是一种用于存储大量二进制数据的数据类型,如图像、音频、视频等文件,以及大量的文本信息。Blob类型的数据没有明确的...
在JavaScript中,Blob对象在处理文件和上传下载等场景中非常实用。本文将详细介绍JavaScript中Blob对象的具体使用方法,并通过示例代码来展示如何构建和操作Blob对象。 首先,要创建一个Blob对象可以有几种方式。最...
### 在Oracle中存取BLOB对象实现文件的上传和下载 #### 核心知识点解析: **一、BLOB数据类型简介** BLOB(Binary Large Object)是数据库中的二进制大对象类型,主要用于存储大量二进制数据,如图像、音频、视频等...
1. MySQL对`CLOB`和`BLOB`的处理: MySQL提供了`TEXT`和`BINARY`系列的数据类型来对应`CLOB`和`BLOB`。`LONGTEXT`和`LONGBLOB`是最接近`CLOB`和`BLOB`的数据类型,分别可存储最大4GB的字符和二进制数据。MySQL将...
Java对Oracle数据库中BLOB字段的处理涉及多个层面,包括读取、写入、更新以及跨数据库操作等。 ### Java处理Oracle BLOB字段的基本方法 #### 1. 读取BLOB字段 在Java中,读取Oracle数据库中的BLOB字段通常通过`...
Blob代码分析主要涉及对处理Blob对象的程序或库进行理解和调试。 在编程中,Blob经常与Web开发相关,特别是在JavaScript中,它被用来处理和操作二进制数据。例如,当用户上传文件或者从服务器下载文件时,Blob对象...
// 这里可以对imageData进行处理,如保存到文件 } } // 写入Blob字段 byte[] imageBytes = File.ReadAllBytes("path_to_your_image.jpg"); OracleParameter blobParam = new OracleParameter("ImageBlob", ...
综上所述,Java读取`BLOB`类型的大字段是一项技术性较强的工作,需要开发者具备良好的编程习惯和对数据库操作的深入了解。通过上述步骤和注意事项,可以帮助程序员们更加高效、安全地处理大型`BLOB`数据。
在处理数据库操作时,经常需要存储二进制大对象(Binary Large Object,简称 BLOB),例如图像、视频等非文本数据。BLOB 类型是数据库系统中用于存储大量二进制数据的数据类型。在 Java 应用开发中,尤其是使用 ORM ...
JavaScript中的Blob对象是一种用于处理二进制大数据的内建对象,它代表了不可变的原始数据,这些数据可能不是JavaScript的原生格式。Blob对象在Web开发中扮演着重要角色,尤其是在处理文件、图片、音频或视频等大量...
Blob对象在前端开发中扮演着重要的角色,尤其是在处理二进制数据、文件上传和下载、以及与服务器进行异步通信时。"前端项目-blob-util.zip"是一个专注于Blob对象操作的工具库,它为浏览器环境提供了便利的功能。下面...
处理BLOB字段通常涉及将这些大型二进制对象插入到数据库中以及从数据库中检索它们。本文将深入探讨如何使用Java中的PreparedStatement和ResultSet对象来有效地处理BLOB字段。 ### 插入BLOB字段 在Java中,使用...
- 当使用 Oracle 数据库时,需要引入 Oracle 的 JDBC 驱动,并且在处理 BLOB 对象时需要导入 `oracle.sql.BLOB` 类。 - 为了提高效率和安全性,可以考虑使用事务来保证数据的一致性。 ### 2. 处理图片上传和显示的...