“向数据库中插入BLOB类型数据”的版本间的差异

来自姬鸿昌的知识库
跳到导航 跳到搜索
 
(未显示同一用户的1个中间版本)
第1行: 第1行:
 
https://www.bilibili.com/video/BV1eJ411c7rf/?p=29
 
https://www.bilibili.com/video/BV1eJ411c7rf/?p=29
  
PreparedStatement 可以操作 BLOB 类型的数据,但 Statement 不能。
+
*PreparedStatement 可以操作 BLOB 类型的数据,但 Statement 不能。
 
+
*MySQL中,BLOB是一个二进制大型对象,是一个可以存储大量数据的容器,它能容纳不同大小的数据。
 
+
*插入BLOB类型的数据必须使用 PreparedStatement,因为 BLOB 类型的数据无法使用字符串拼接写的。
MySQL中的四种BLOB类型(除了在存储的最大信息量上不同外,它们是等同的)
+
*MySQL中的四种BLOB类型(除了在存储的最大信息量上不同外,它们是等同的)
 
{| class="wikitable"
 
{| class="wikitable"
 
!类型
 
!类型
第21行: 第21行:
 
|最大 4G
 
|最大 4G
 
|}
 
|}
 +
 +
* 实际使用中根据需要存入的数据大小定义不同的BLOB类型。
 +
 +
* 需要注意的是:如果存储的文件过大,数据库的性能会下降。
 +
 +
* 如果在指定了相关的 Blob 类型以后,还报错:xxx too large,那么在 MySQL 的安装目录下,找 my.ini 文件加上如下的配置参数:
 +
<syntaxhighlight lang="properties">
 +
max_allowed_packet=16M
 +
</syntaxhighlight>同时注意:修改了 my.ini 文件之后,需要重启 MySQL 服务。
 +
 +
 +
https://github.com/jihch/jdbc/blob/main/src/main/java/io/github/jihch/blob/BlobTest.java

2023年1月1日 (日) 10:02的最新版本

https://www.bilibili.com/video/BV1eJ411c7rf/?p=29

  • PreparedStatement 可以操作 BLOB 类型的数据,但 Statement 不能。
  • MySQL中,BLOB是一个二进制大型对象,是一个可以存储大量数据的容器,它能容纳不同大小的数据。
  • 插入BLOB类型的数据必须使用 PreparedStatement,因为 BLOB 类型的数据无法使用字符串拼接写的。
  • MySQL中的四种BLOB类型(除了在存储的最大信息量上不同外,它们是等同的)
类型 大小(单位:字节)
TinyBlob 最大 255
Blob 最大 65K
MediumBlob 最大 16M
LongBlob 最大 4G
  • 实际使用中根据需要存入的数据大小定义不同的BLOB类型。
  • 需要注意的是:如果存储的文件过大,数据库的性能会下降。
  • 如果在指定了相关的 Blob 类型以后,还报错:xxx too large,那么在 MySQL 的安装目录下,找 my.ini 文件加上如下的配置参数:
max_allowed_packet=16M

同时注意:修改了 my.ini 文件之后,需要重启 MySQL 服务。


https://github.com/jihch/jdbc/blob/main/src/main/java/io/github/jihch/blob/BlobTest.java