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访问二进制类型的数据
相关推荐
1. **二进制流**:二进制流是一种数据表示方式,允许我们处理任何类型的原始字节数据,包括图片、音频文件或视频文件。在数据库中,二进制流常用于存储无法直接用文本格式表示的数据。 2. **SQL Server 2008与图片...
4. **插入图片数据**:使用SQL INSERT语句,将二进制数据流插入到BLOB字段中。编程语言会提供API来处理二进制数据和SQL语句的执行。 5. **关闭连接**:操作完成后,记得关闭数据库连接,以释放资源。 取出图片显示...
5. **从数据库读取**:当需要显示图片时,执行SQL查询语句,从BLOB字段中获取图片的二进制数据。 6. **转换回图片**:将从数据库获取的二进制数据转换回图片文件,这可以通过编程语言的相应库函数完成。例如,Java...
创建一个包含图片信息的表,至少需要两个字段:`id`(主键,用于唯一标识图片)和`image_data`(Blob类型,存储图片二进制数据)。 2. **图片上传**:当用户上传图片时,应用需要将图片文件读取为字节流,然后存入...
2. **Blob类型**:Blob是Binary Large Object的缩写,是数据库管理系统中用于存储大量二进制数据的字段类型,例如图片、音频、视频等。Blob字段允许我们存储非结构化的数据,与普通的数值、字符串等字段不同。 3. *...
本资源“商业编程-源码-使用流对二进制大对象进行读写.zip”提供了一种利用流技术处理二进制大对象的方法,这在Java或.NET等面向对象编程语言中是非常实用的技术。 首先,我们需要理解什么是二进制大对象。二进制大...
在Java编程中,Blob(Binary Large Object)是用于存储大量二进制数据的数据类型,常被用在数据库中保存图片、文件等非文本信息。本教程将深入探讨如何使用Java进行Blob字段的操作,以实现将图片或文件保存到数据库...
Oracle数据库提供了BLOB(Binary Large Object)数据类型,专门用于存储大对象,如图像、音频文件或任何其他二进制数据。 首先,我们需要了解二进制数据的存储过程。在Java或Python等编程语言中,我们可以读取图片...
### Java中SQLite数据库BLOB数据类型的存取 #### 背景与问题描述 在Java中操作SQLite数据库时,BLOB(Binary Large Object)类型的数据处理是较为常见的需求之一,尤其是在需要存储图片、文档等二进制文件的情况下。...
在Oracle中存储和读取图片数据时,可以使用PreparedStatement对象的`setBlob()`方法将图像数据写入BLOB字段,而`getBlob()`方法用于读取BLOB字段中的数据。此外,为了提高性能,可能需要关闭自动提交模式(`conn....
在IT领域,Blob(Binary Large Object)是一种用于存储大量二进制数据的数据类型,常见于数据库系统中,如MySQL。Blob文件入库是指将Blob类型的文件存储到数据库的过程,这对于管理和检索大量的图片、音频、视频等非...
在Oracle数据库中,CLOB(Character Large Object)和BLOB(Binary Large Object)是用来存储大量文本数据和二进制数据的特殊数据类型。CLOB用于存储非结构化的文本信息,如XML文档或长篇文章,而BLOB则适用于图像、...
BLOB类型用于存储二进制大对象,本文将详细介绍如何使用Java来读取和写入Oracle数据库中的BLOB字段。 首先,我们需要引入Oracle JDBC驱动,即`ojdbc`库,以便能够连接到Oracle数据库。在代码中,可以看到使用`Class...
`slserverimage`字段可能是在SQL Server中用于存储图像或其他大对象的数据类型。在Java中,我们可以使用JDBC(Java Database Connectivity)API来实现这个功能。以下是一些关键知识点和步骤: 1. **JDBC驱动**: ...
3. **构造SQL语句**:编写SQL语句,准备将字节流数据插入到数据库的BLOB字段中。 4. **执行SQL语句**:通过执行prepared statement或者直接执行insert语句将字节流数据存入数据库。 ### 知识点三:图片从数据库中...
创建一个新的记录,包含图片的二进制数据和可能的元数据,如图片名称、类型等。确保在插入前关闭任何打开的流以避免资源泄露。 4. **存储图片数据**:将之前转换成的字节数组作为参数,通过PreparedStatement的...
BLOB类型的数据字段可以容纳任何形式的二进制数据,包括图片、音频和视频文件。当图片上传到服务器时,会被转换成字节流并存入数据库。 2. 数据库表设计: 创建一个包含图片信息的数据库表,一般需要有字段如`id`...