`
springcloud微服务
  • 浏览: 12133 次
文章分类
社区版块
存档分类
最新评论

java jdbc 操作 blob 类型的数据

 
阅读更多

1 MySQL BLOB类型

  • MySQL中,BLOB是一个二进制大型对象,是一个可以存储大量数据的容器,它能容纳不同大小的数据。

  • 插入BLOB类型的数据必须使用PreparedStatement,因为BLOB类型的数据无法使用字符串拼接写的。

  • MySQL的四种BLOB类型(除了在存储的最大信息量上不同外,他们是等同的)

  • 实际使用中根据需要存入的数据大小定义不同的BLOB类型。
  • 需要注意的是:如果存储的文件过大,数据库的性能会下降。
  • 如果在指定了相关的Blob类型以后,还报错:xxx too large,那么在mysql的安装目录下,找my.ini文件加上如下的配置参数: max_allowed_packet=16M。同时注意:修改了my.ini文件之后,需要重新启动mysql服务。

2 向数据表中插入大数据类型

//获取连接
Connection conn = JDBCUtils.getConnection();
		
String sql = "insert into customers(name,email,birth,photo)values(?,?,?,?)";
PreparedStatement ps = conn.prepareStatement(sql);

//java项目www.fhadmin.org
// 填充占位符
ps.setString(1, "张强");
ps.setString(2, "123@126.com");
ps.setDate(3, new Date(new java.util.Date().getTime()));
// 操作Blob类型的变量
FileInputStream fis = new FileInputStream("xhq.png");
ps.setBlob(4, fis);
//执行
ps.execute();
		
fis.close();
JDBCUtils.closeResource(conn, ps);

3 修改数据表中的Blob类型字段

Connection conn = JDBCUtils.getConnection();
String sql = "update customers set photo = ? where id = ?";
PreparedStatement ps = conn.prepareStatement(sql);

//java项目www.fhadmin.org
// 填充占位符
// 操作Blob类型的变量
FileInputStream fis = new FileInputStream("coffee.png");
ps.setBlob(1, fis);
ps.setInt(2, 25);

ps.execute();

fis.close();
JDBCUtils.closeResource(conn, ps);

4 从数据表中读取大数据类型

//java项目www.fhadmin.org
String sql = "SELECT id, name, email, birth, photo FROM customer WHERE id = ?";
conn = getConnection();
ps = conn.prepareStatement(sql);
ps.setInt(1, 8);
rs = ps.executeQuery();
if(rs.next()){
	Integer id = rs.getInt(1);
    String name = rs.getString(2);
	String email = rs.getString(3);
    Date birth = rs.getDate(4);
	Customer cust = new Customer(id, name, email, birth);
    System.out.println(cust); 
    //读取Blob类型的字段
	Blob photo = rs.getBlob(5);
	InputStream is = photo.getBinaryStream();
	OutputStream os = new FileOutputStream("c.jpg");
	byte [] buffer = new byte[1024];
	int len = 0;
	while((len = is.read(buffer)) != -1){
		os.write(buffer, 0, len);
	}
    JDBCUtils.closeResource(conn, ps, rs);
		
	if(is != null){
		is.close();
	}
		
	if(os !=  null){
		os.close();
	}
    
}

 
1
0
分享到:
评论

相关推荐

    jdbc 操作oracle blob数据

    jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc ...

    JAVA操作Oracle blob类型

    总的来说,Java通过JDBC和Oracle JDBC驱动提供了一套完整的工具来操作Oracle数据库中的BLOB类型。无论是在插入、查询、更新还是删除BLOB数据,都需要注意效率和资源管理,以确保程序的稳定性和性能。通过实践和优化...

    java读取大字段blob类型

    4. **读取BLOB数据**:通过`ResultSet`获取到`BLOB`对象,并将其转换为`InputStream`进行读取。 ```java if (rs.next()) { oracle.sql.BLOB content = (oracle.sql.BLOB) rs.getBlob("content"); ...

    使用JDBC4.0操作Oracle中BLOB类型的数据方法

    在Java的JDBC4.0版本中,Oracle数据库的BLOB类型数据操作变得更加方便。BLOB(Binary Large Object)是用来存储大对象,如图像、音频或视频文件等二进制数据的数据库字段类型。以下是对使用JDBC4.0操作Oracle中BLOB...

    上传图片,保存到数据库,jdbc操作blob

    JDBC(Java Database Connectivity)是Java中的数据库连接技术,用于连接和操作数据库。使用JDBC,我们可以连接到各种数据库,包括Oracle、MySQL、SQL Server等。 在上面的代码中,我们使用JDBC连接数据库,并执行...

    java file upload BLOB

    - 使用 `PreparedStatement` 设置参数值,对于 BLOB 类型的字段,使用 `setBlob` 方法设置为空的 BLOB 对象。 - 最后,执行插入操作,并关闭数据库连接。 #### 注意事项: - 在处理 BLOB 数据时,需要注意资源...

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

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

    Java-图片BLOB的存取DEMO

    直接将结果select查询出来再update行不通,所以先将图片从库里导到本地,然后在从本地拿数据进行更新操作,根据ImgID进行update操作 ; jdbc参数放到db.properties里(有工具类) WEB方式未实现,后期自行研究(可...

    JAVA中SQLlite数据库BLOB数据类型的存取.docx

    JAVA 中 SQLlite 数据库 BLOB 数据类型的存取 JAVA 中 SQLlite 数据库 BLOB 数据类型的存取是指在 JAVA 语言中使用 SQLlite 数据库来存储和读取大型二进制对象(BLOB),以便实现文件存储和读取的功能。本文将详细...

    JDBC中操作Blob、Clob等对象

    // 读取Blob数据 InputStream blobStream = blob.getBinaryStream(); byte[] imageData = IOUtils.toByteArray(blobStream); } ``` 通过以上的示例可以看出,操作Blob和Clob数据实际上与处理普通的字符串或...

    java对oracle数据库中blob字段的处理

    在IT领域,尤其是在Java开发与Oracle数据库交互的过程中,处理BLOB(Binary Large Object)类型字段是一项常见且重要的任务。BLOB字段主要用于存储大量的二进制数据,如图像、音频、视频或任何其他非文本格式的数据...

    java 存数据库 blob文件的示例

    在Java编程中,Blob(Binary Large Object)是用于存储大对象数据类型的一种方式,常见于关系型数据库中,如SQL Server。Blob类型适用于存储图片、音频、视频等非结构化数据。本示例将详细解释如何使用Java向SQL ...

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

    在Java中,Blob对象通常由`java.sql.Blob`接口表示,该接口提供了读写Blob数据的方法。 2. **准备工作** 在进行Blob操作前,我们需要准备以下内容: - 数据库连接:使用JDBC(Java Database Connectivity)API...

    利用Java语言实现PB对Oracle中Blob类型的动态操作.pdf

    该方法通过使用Java存储过程和Oracle中的JDBC来实现对Blob类型数据的动态访问。 关键词:Oracle 二进制大对象 Java存储过程 JDBC 知识点: 1.Oracle 中的Blob类型数据 Blob(Binary Large OBject)是Oracle中的...

    插入、取出Blob类型的数据代码示例

    了解这些基础知识后,你可以结合压缩包中的资源,通过编程实现Blob数据的数据库操作。在实际应用中,还需要考虑错误处理、性能优化以及数据安全等问题。例如,使用事务管理保证数据一致性,使用批处理提高插入效率,...

    JDBC中操作Blob、Clob等对象 实例详细 非常详细

    在Java数据库连接(JDBC)中,Blob(Binary Large Object)和Clob(Character Large Object)是用于存储大型二进制对象和文本对象的数据类型。这两种数据类型的使用在处理大量图像、文档或者长文本内容时变得尤为...

    sqlite数据类型详细介绍+javaJDBC连接sqlite小例子

    本文将深入探讨SQLite的数据类型及其与Java JDBC连接SQLite的基础知识,并通过一个简单的Java例子程序来演示如何存取数据。 SQLite支持七种基本的数据类型,它们分别是: 1. NULL:表示空值,任何值都可以赋为NULL...

    JDBC+Hibernate将Blob数据写入Oracle

    以下是对“JDBC+Hibernate将Blob数据写入Oracle”这一主题的深入解析。 ### JDBC与Oracle BLOB的交互 #### 1. 理解Oracle BLOB特性 在Oracle中,BLOB用于存储大量的二进制数据,如图像文件。与传统的文本或数字...

    详解jdbc实现对CLOB和BLOB数据类型的操作

    对CLOB和BLOB数据类型的操作是非常重要的,特别是在使用Java数据库连接(JDBC)时。本文将详细介绍JDBC实现对CLOB和BLOB数据类型的操作,包括读取和写入操作。 CLOB数据类型 CLOB数据类型用于存储大型字符数据,如...

    jdbc_blob_clob.rar

    在Java编程中,当需要与数据库交互并处理这些大数据类型时,JDBC提供了接口和方法来操作Blob和Clob。 这篇博客文章(链接已提供)可能详细介绍了如何在Java应用程序中有效地使用JDBC来处理Blob和Clob对象。通常,这...

Global site tag (gtag.js) - Google Analytics