JDBC学习(七):操作Blob类型数据

90 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第2天,点击查看活动详情

什么是JDBC: 在web开发中,不可避免的地要使用数据库来存储和管理数据。为了在java语言中提供数据库访问的支持,Sun公司于1996年提供了一套访问数据的标准Java类库,即JDBC。 JDBC的全称是Java数据库连接(Java Database connect),它是一套用于执行SQL语句的Java API。应用程序可通过这套API连接到关系数据库,并使用SQL语句来完成对数据库中数据的查询、更新和删除等操作。

JDBC的实现包括三部分: (1)JDBC驱动管理器:负责注册特定的JDBC驱动器,主要通过java.sql. Driver Manager类实现。 (2)JDBC驱动器API:由Sun公司负责制定,其中最主要的接口是java.sql. Driver接口。 (3)JDBC驱动器:它是一种数据库驱动,由数据库厂商创建,也称为JDBC驱动程序JDBC驱动器实现了JDBC驱动器API,负责与特定的数据库连接,以及处理通信细节。

BLOB 数据类型以随机存取块(称为智能大对象空间)的形式存储任何种类的二进制数据。二进制数据通常由已保存的电子表格、程序装入模块和数字化声音模式等等组成。数据库服务器不会对 BLOB 列的内容进行解释。

BLOB 列最长可为 4 太字节(4*240 个字节),不过系统资源可能会强加较低的实际限值。分配给智能大对象数据类型的最小磁盘空间量为 512 字节。

术语智能大对象指的是 BLOB 和 CLOB 数据类型。将 CLOB 数据类型(请参阅 CLOB 数据类型页)用于随机访问文本数据。有关 BLOB 和 CLOB 数据类型的一般信息,请参阅智能大对象

使用的JDBCUtils类在前面的博客中。

package demo04;
 
import java.io.File;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import org.junit.jupiter.api.Test;
 
import utils.JDBCUtils;
 
public class BlobTest {
 
	@Test
	public void test(){
		
		Connection conn = null;
		PreparedStatement ps = null;
		try {
			conn = JDBCUtils.getConnection();
			String sql = "insert into beauty(name,sex,phone,photo)values(?,?,?,?)";
			ps = conn.prepareStatement(sql);
			
			
			ps.setObject(1, "刘亦菲");
			ps.setObject(2, "女");
			ps.setObject(3, "18209179577");
			FileInputStream fis = new FileInputStream(new File("liu.png"));
			ps.setBlob(4, fis);
			
			ps.execute();
		}catch (Exception e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}finally {
			
			JDBCUtils.closeResourse(conn, ps);
		}
		
		
	}
	
}