`
zhjump
  • 浏览: 10465 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

[6]用jdbc访问二进制类型的数据(BLOB大字段使用字节流)

    博客分类:
  • Java
阅读更多
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class BlobTest {

	/**
	 * @param args
	 * @throws IOException
	 * @throws SQLException
	 */
	public static void main(String[] args) throws SQLException, IOException {
		// create();
		read();
	}

	static void read() throws SQLException, IOException {
		Connection conn = null;
		Statement st = null;
		ResultSet rs = null;
		try {
			// 2.建立连接
			conn = JdbcUtils.getConnection();
			// conn = JdbcUtilsSing.getInstance().getConnection();
			// 3.创建语句
			st = conn.createStatement();

			// 4.执行语句
			rs = st.executeQuery("select big_bit  from blob_test");

			// 5.处理结果
			while (rs.next()) {
				// Blob blob = rs.getBlob(1);
				// InputStream in = blob.getBinaryStream();
				InputStream in = rs.getBinaryStream("big_bit");

				File file = new File("IMG_0002_bak.jpg");
				OutputStream out = new BufferedOutputStream(
						new FileOutputStream(file));
				byte[] buff = new byte[1024];
				for (int i = 0; (i = in.read(buff)) > 0;) {
					out.write(buff, 0, i);
				}
				out.close();
				in.close();
			}
		} finally {
			JdbcUtils.free(rs, st, conn);
		}
	}

	static void create() throws SQLException, IOException {
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		try {
			// 2.建立连接
			conn = JdbcUtils.getConnection();
			// conn = JdbcUtilsSing.getInstance().getConnection();
			// 3.创建语句
			String sql = "insert into blob_test(big_bit) values (?) ";
			ps = conn.prepareStatement(sql);
			File file = new File("IMG_0002.jpg");
			InputStream in = new BufferedInputStream(new FileInputStream(file));

			ps.setBinaryStream(1, in, (int) file.length());
			// 4.执行语句
			int i = ps.executeUpdate();

			in.close();

			System.out.println("i=" + i);
		} finally {
			JdbcUtils.free(rs, ps, conn);
		}
	}
}

 用jdbc访问二进制类型的数据

分享到:
评论

相关推荐

    SqlServer与Oracle保存与读取图片二进制流

    1. **二进制流**:二进制流是一种数据表示方式,允许我们处理任何类型的原始字节数据,包括图片、音频文件或视频文件。在数据库中,二进制流常用于存储无法直接用文本格式表示的数据。 2. **SQL Server 2008与图片...

    图片以二进制存取数据库

    4. **插入图片数据**:使用SQL INSERT语句,将二进制数据流插入到BLOB字段中。编程语言会提供API来处理二进制数据和SQL语句的执行。 5. **关闭连接**:操作完成后,记得关闭数据库连接,以释放资源。 取出图片显示...

    将图片存放进数据库(转换成二进制流)

    5. **从数据库读取**:当需要显示图片时,执行SQL查询语句,从BLOB字段中获取图片的二进制数据。 6. **转换回图片**:将从数据库获取的二进制数据转换回图片文件,这可以通过编程语言的相应库函数完成。例如,Java...

    数据库读取二进制图片显示

    创建一个包含图片信息的表,至少需要两个字段:`id`(主键,用于唯一标识图片)和`image_data`(Blob类型,存储图片二进制数据)。 2. **图片上传**:当用户上传图片时,应用需要将图片文件读取为字节流,然后存入...

    图片BASE64加密保存到数据库Blob类型中(放入数据库,并取出生成图片)

    2. **Blob类型**:Blob是Binary Large Object的缩写,是数据库管理系统中用于存储大量二进制数据的字段类型,例如图片、音频、视频等。Blob字段允许我们存储非结构化的数据,与普通的数值、字符串等字段不同。 3. *...

    商业编程-源码-使用流对二进制大对象进行读写.zip

    本资源“商业编程-源码-使用流对二进制大对象进行读写.zip”提供了一种利用流技术处理二进制大对象的方法,这在Java或.NET等面向对象编程语言中是非常实用的技术。 首先,我们需要理解什么是二进制大对象。二进制大...

    java,Blob字段操作,将图片或者文件保存到数据库中.zip

    在Java编程中,Blob(Binary Large Object)是用于存储大量二进制数据的数据类型,常被用在数据库中保存图片、文件等非文本信息。本教程将深入探讨如何使用Java进行Blob字段的操作,以实现将图片或文件保存到数据库...

    图片以二进制保存到Oracle,取出并显示到页面示例

    Oracle数据库提供了BLOB(Binary Large Object)数据类型,专门用于存储大对象,如图像、音频文件或任何其他二进制数据。 首先,我们需要了解二进制数据的存储过程。在Java或Python等编程语言中,我们可以读取图片...

    java中sqllite数据库blob数据类型的存取.docx

    ### Java中SQLite数据库BLOB数据类型的存取 #### 背景与问题描述 在Java中操作SQLite数据库时,BLOB(Binary Large Object)类型的数据处理是较为常见的需求之一,尤其是在需要存储图片、文档等二进制文件的情况下。...

    使用JDBC存取ORACLE数据库中的图片数据.pdf

    在Oracle中存储和读取图片数据时,可以使用PreparedStatement对象的`setBlob()`方法将图像数据写入BLOB字段,而`getBlob()`方法用于读取BLOB字段中的数据。此外,为了提高性能,可能需要关闭自动提交模式(`conn....

    blob 文件入库例子

    在IT领域,Blob(Binary Large Object)是一种用于存储大量二进制数据的数据类型,常见于数据库系统中,如MySQL。Blob文件入库是指将Blob类型的文件存储到数据库的过程,这对于管理和检索大量的图片、音频、视频等非...

    Oracle,Clob,Blob数据存取的Java代码

    在Oracle数据库中,CLOB(Character Large Object)和BLOB(Binary Large Object)是用来存储大量文本数据和二进制数据的特殊数据类型。CLOB用于存储非结构化的文本信息,如XML文档或长篇文章,而BLOB则适用于图像、...

    java读写oracle的blob字段示例

    BLOB类型用于存储二进制大对象,本文将详细介绍如何使用Java来读取和写入Oracle数据库中的BLOB字段。 首先,我们需要引入Oracle JDBC驱动,即`ojdbc`库,以便能够连接到Oracle数据库。在代码中,可以看到使用`Class...

    java读取slserverimage字段.doc

    `slserverimage`字段可能是在SQL Server中用于存储图像或其他大对象的数据类型。在Java中,我们可以使用JDBC(Java Database Connectivity)API来实现这个功能。以下是一些关键知识点和步骤: 1. **JDBC驱动**: ...

    SQL数据库里存取图片

    3. **构造SQL语句**:编写SQL语句,准备将字节流数据插入到数据库的BLOB字段中。 4. **执行SQL语句**:通过执行prepared statement或者直接执行insert语句将字节流数据存入数据库。 ### 知识点三:图片从数据库中...

    struts2+jdbc实现图片的存储与显示(图片存储在数据库内)

    创建一个新的记录,包含图片的二进制数据和可能的元数据,如图片名称、类型等。确保在插入前关闭任何打开的流以避免资源泄露。 4. **存储图片数据**:将之前转换成的字节数组作为参数,通过PreparedStatement的...

    数据库保存图片及显示

    BLOB类型的数据字段可以容纳任何形式的二进制数据,包括图片、音频和视频文件。当图片上传到服务器时,会被转换成字节流并存入数据库。 2. 数据库表设计: 创建一个包含图片信息的数据库表,一般需要有字段如`id`...

Global site tag (gtag.js) - Google Analytics