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

来自姬鸿昌的知识库
跳到导航 跳到搜索
(建立内容为“https://www.bilibili.com/video/BV1eJ411c7rf/?p=29”的新页面)
 
 
(未显示同一用户的3个中间版本)
第1行: 第1行:
 
https://www.bilibili.com/video/BV1eJ411c7rf/?p=29
 
https://www.bilibili.com/video/BV1eJ411c7rf/?p=29
 +
 +
*PreparedStatement 可以操作 BLOB 类型的数据,但 Statement 不能。
 +
*MySQL中,BLOB是一个二进制大型对象,是一个可以存储大量数据的容器,它能容纳不同大小的数据。
 +
*插入BLOB类型的数据必须使用 PreparedStatement,因为 BLOB 类型的数据无法使用字符串拼接写的。
 +
*MySQL中的四种BLOB类型(除了在存储的最大信息量上不同外,它们是等同的)
 +
{| class="wikitable"
 +
!类型
 +
!大小(单位:字节)
 +
|-
 +
|TinyBlob
 +
|最大 255
 +
|-
 +
|Blob
 +
|最大 65K
 +
|-
 +
|MediumBlob
 +
|最大 16M
 +
|-
 +
|LongBlob
 +
|最大 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