1 /*
2 * To change this template, choose Tools | Templates
3 * and open the template in the editor.
4 */
5
6 package readblob;
7
8 import com.mysql.jdbc.Blob;
9 import com.unitedpacs.dbmanager.DB;
10 import com.unitedpacs.utils.ReadXML;
11 import java.io.File;
12 import java.io.FileNotFoundException;
13 import java.io.FileOutputStream;
14 import java.io.IOException;
15 import java.io.InputStream;
16 import java.sql.Connection;
17 import java.sql.ResultSet;
18 import java.sql.SQLException;
19 import java.util.logging.Level;
20 import java.util.logging.Logger;
21
22 /**
23 *
24 * @author alen
25 */
26 public class Main {
27 private static DB db=new DB(ReadXML.getInstance().initJDBC());
28 /**
29 * @param args the command line arguments
30 */
31 public static void main(String[] args) throws FileNotFoundException, IOException {
32 try {
33 // TODO code application logic here
34 Connection conn = null;
35 ResultSet rs = null;
36 String sql = "select consor from risuser where userid='001'";
37 conn = db.getconnection();
38 rs = db.query(conn, null, sql);
39 if (rs.next()) {
40 //获取 数据库中的 blob
41 Blob blob=(Blob)rs.getBlob(1);
42
43 //拿出 二进制流
44 InputStream is=blob.getBinaryStream();
45
46 //文件输出流
47
48
49
50 int length=(int)blob.length();
51 System.out.println("the blob length is "+length);
52
53 //定义缓冲区
54 byte bt[] =new byte[length];
55 try {
56 //向缓冲区中 读取数据
57 while ((length = is.read(bt)) != -1) {
58
59 //把缓冲区的述据 写出去
60 fos.write(bt);
61 }
62
63 } catch (IOException ex) {
64 Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
65 }
66
67 //关闭输入流
68 is.close();
69
70 //关闭输出流
71 fos.close();
72
73 }
74 } catch (SQLException ex) {
75 Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
76 }
77
78
79 }
80
81 }
82
分享到:
相关推荐
本示例将详细解释如何使用Java向SQL Server数据库中插入Blob类型的文件。 首先,确保你已经安装了JDBC驱动程序,对于SQL Server,通常是Microsoft的`mssql-jdbc`驱动。你可以通过Maven或Gradle将其添加到项目依赖中...
综上所述,Java读取`BLOB`类型的大字段是一项技术性较强的工作,需要开发者具备良好的编程习惯和对数据库操作的深入了解。通过上述步骤和注意事项,可以帮助程序员们更加高效、安全地处理大型`BLOB`数据。
可以从数据库中读取blob字段并插入到另一个表中,已经测试通过
JAVA 中 SQLlite 数据库 BLOB 数据类型的存取是指在 JAVA 语言中使用 SQLlite 数据库来存储和读取大型二进制对象(BLOB),以便实现文件存储和读取的功能。本文将详细介绍如何使用 JAVA 语言来实现 SQLlite 数据库...
kettle通过java代码将数据库blob 字段抽取到本地文件
这里我们主要探讨两种Java从数据库中读取Blob对象图片并显示的方法。 **方法一** 这个方法涉及从数据库获取Blob对象的输入流,并将其直接写入HTTP响应的输出流,以便浏览器可以解析并显示图片。以下是实现步骤: ...
以上就是Java中Blob字段操作的基本流程,通过这些步骤,你可以成功地将图片或文件保存到数据库中,并能从数据库中读取和恢复这些数据。在实际开发中,根据具体需求,可能还需要处理异常、事务管理和资源关闭等问题,...
在Java编程中,将数据库查询结果导出为Excel文件是一项常见的需求,这通常涉及到数据库操作、文件处理以及HTTP响应的构建。以下是对这个主题的详细解释: 首先,我们需要连接到数据库,这通常通过JDBC(Java ...
使用 Java 进行文件上传至数据库 BLOB 字段 #### 知识点说明: 在Java Web开发中,经常需要处理用户上传的文件,比如图片、文档等。这些文件通常比较大,如果直接将文件的内容作为字符串保存在数据库中,可能会...
### Java中读取Oracle数据库BLOB字段存储的图片方法详解 #### 一、背景与目的 在实际的应用开发过程中,经常会有将图片等二进制数据存入数据库的需求。Oracle数据库支持通过BLOB(Binary Large Object)类型来存储...
以下是一个示例PL/SQL代码段,用于遍历`photos`表,读取BLOB数据,并将其保存为本地文件: ```sql DECLARE v_blob BLOB; v_filename VARCHAR2(255); v_file UTL_FILE.FILE_TYPE; BEGIN FOR r IN (SELECT ...
Java对Oracle数据库中BLOB字段的处理涉及多个层面,包括读取、写入、更新以及跨数据库操作等。 ### Java处理Oracle BLOB字段的基本方法 #### 1. 读取BLOB字段 在Java中,读取Oracle数据库中的BLOB字段通常通过`...
### Java中SQLite数据库BLOB数据类型的存取 #### 背景与问题描述 在Java中操作SQLite数据库时,BLOB(Binary Large Object)类型的数据处理是较为常见的需求之一,尤其是在需要存储图片、文档等二进制文件的情况下。...
要从数据库读取图片,你需要执行一个SELECT查询,获取Blob对象,然后将其转换回图片文件。 ```java ResultSet rs = stmt.executeQuery("SELECT imageData FROM images WHERE id = ?"); if (rs.next()) { Blob ...
当我们谈论“从数据库读取图片文件”时,通常涉及的是将图片作为BLOB(Binary Large Object)类型存储在数据库中,然后通过应用程序或API从数据库检索并显示这些图片。这一过程涉及到多个关键知识点,让我们逐一深入...
* 该jsp文件使用JSP技术读取数据库中的数据,然后将数据显示在网页上。 知识点7:JAVA类的应用 * JAVA类可以将坐标点转换为图形,然后将图形显示在网页上。 * JAVA类可以与JSP技术结合使用,充分展示了JAVA应用的...
在IT领域,数据库管理...以上就是使用JSP操作MySQL数据库Blob字段的关键知识点,涵盖了从文件读取、数据库操作到文件输出的完整流程。理解这些概念和步骤对于任何需要在Web应用中存储和检索大文件的开发者都至关重要。
本示例主要涉及的是如何将图片通过BASE64编码加密后存入数据库的Blob类型字段,并能从数据库中取出这些数据再还原成原始图片。以下是相关知识点的详细说明: 1. **BASE64编码**:BASE64是一种用于将二进制数据转换...
使用 JAVA 读取 ORACLE BLOB 字段实现上传下载需要完成以下几个步骤:上传大对象、将大对象存储在数据库中、使用专门的函数来完成 BLOB 的使用。在 Struts 项目中,我们可以使用 Struts 的文件上传组件来上传大对象...
在Java中,我们可以使用`java.io`和`java.nio`包中的类来读取和处理二进制文件。 1. **读取本地图片**: 使用`java.io.FileInputStream`或`java.nio.file.Files`可以读取本地图片文件。例如,通过以下代码片段,...