最近我在做一点微小的工作时,需要将图片保存到数据库。于是看了一些博客之后,总结了一个自己版本的方法。
保存图片到数据库主要有两种方式:一种是保存图片的路径到数据库;另一种是将图片以二进制数据流直接保存到数据库。我这里用的是后一种方法。
在MySQL中,保存图片用BLOB (binary large object)类型。
类型 | 上限 |
---|---|
TinyBlob | 256B |
Blob | 64K |
MediumBlob | 16M |
LongBlob | 4G |
我在MySQL建的表如下
CREATE TABLE `test01` (
`id` int(11) NOT NULL,
`image` mediumblob,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
Java代码
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;