BLOB的全名是Binary Large Object ,用于存储大量的二进制数据,如图片、视频、音频等。
在MySQL中,大数据对象字段数据类型有TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB等。
它们的大小容量:
TINYBLOB ≈ 255 bytes
BLOB ≈ 64KB
MEDIUMBLOB ≈ 16MB
LONGBLOB ≈ 4GB
保存数据
保存数据到表使用的关键方法setBinaryStream(),参数设置InputStream流。
我们只要将路径转换成File对象,将File转换成InputStream对象,将InputStream对象设置成PreparedStatement对象的参数。最后就能将二进制数据存储到表里。
建表脚本如下:
CREATE TABLE bigtb
(
id
int(11) NOT NULL AUTO_INCREMENT,
name
varchar(45) COLLATE utf8_bin DEFAULT NULL,
file
mediumtext COLLATE utf8_bin DEFAULT NULL,
images
longblob DEFAULT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
完整代码:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import