栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【JDBC笔记】向数据表中插入Blob类型数据

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【JDBC笔记】向数据表中插入Blob类型数据

本文使用的数据表如下,我们想在其中添加图片(Blob)类型的数据

目录

MySQL BLOB类型

插入Blob类型数据代码实现


MySQL BLOB类型

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

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

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

类型大小(单位:字节)
TinyBlob最大 255
Blob最大 65K
MediumBlob最大 16M
LongBlob最大 4G

实际使用中根据需要存入的数据大小定义不同的 BLOB 类型

需要注意的是:如果存储文件过大,数据库的性能会下降

如果在指定了相关的 Blob 类型以后,还报错:xxx too large 或者 Out of sort memory, consider increasing server sort buffer size,那么在 mysql 的安装目录下,找 my.ini 文件加上如下的配置参数:max_allowed_packet=16M 。同时注意:修改了 my.ini 文件之后,需要重新启动 mysql 服务

插入Blob类型数据代码实现
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.DriverManager;
import java.util.Properties;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;

public class BlobTest {
	public static void main(String[] args) throws Exception {
		//1.读取文件中的信息
		InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("jdbc.properties");
		//将用户名和密码封装在Properties中
		Properties pros = new Properties();
		pros.load(is);
		String user = pros.getProperty("user");
		String password = pros.getProperty("password");
		String url = pros.getProperty("url");
		String driverClass = pros.getProperty("driverClass");
		//2.加载驱动
		Class.forName(driverClass);
		//3.获取连接
		Connection conn = (Connection) DriverManager.getConnection(url, user, password);
		
		String sql = "insert into customers(name,email,birth,photo)values(?,?,?,?)";
		PreparedStatement ps = (PreparedStatement) conn.prepareStatement(sql);
		ps.setObject(1, "远坂凛");
		ps.setObject(2, "ybl@qq.com");
		ps.setObject(3, "2000-01-01");
		
		FileInputStream is1 = new FileInputStream(new File("ybl1.png"));
		ps.setBlob(4, is1);
		ps.execute();
		conn.close();
		ps.close();		
	}
}

执行代码,插入成功

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1003362.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号