作為一種廣泛應(yīng)用的關(guān)系型數(shù)據(jù)庫,MySQL 既支持文本數(shù)據(jù)的存儲,也支持二進(jìn)制數(shù)據(jù)的存儲,這就為添加圖片提供了可能性。下面我們就來詳細(xì)講解如何在 MySQL 數(shù)據(jù)庫中添加圖片。
CREATE TABLE `image_table` ( `id` int(11) NOT NULL AUTO_INCREMENT, `image` longblob NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
首先,我們需要創(chuàng)建一個存放圖片數(shù)據(jù)的表。上面的代碼中,我們創(chuàng)建了名為 image_table 的表,其中包含兩個字段,id 是主鍵,用來唯一標(biāo)識每條記錄;image 是長二進(jìn)制類型,用來存放圖片的數(shù)據(jù)。
INSERT INTO `image_table` (`image`) VALUES (?);
創(chuàng)建表之后,我們就可以通過 SQL 語句向表中插入圖片數(shù)據(jù),其中 ? 表示待插入的圖片數(shù)據(jù)。需要注意的是,由于圖片數(shù)據(jù)是二進(jìn)制格式,因此需要使用 PreparedStatement,并通過 setBinaryStream 方法傳入圖片數(shù)據(jù)。
SELECT `image` FROM `image_table` WHERE `id`=?;
若需從表中取回存儲的圖片數(shù)據(jù),可以使用 SELECT 語句,其中 ? 表示圖片數(shù)據(jù)所在記錄的 id 值。同樣需要使用 PreparedStatement,并通過 setInt 方法傳入 id 值。
至此,我們已經(jīng)介紹了如何在 MySQL 數(shù)據(jù)庫中添加、獲取圖片數(shù)據(jù)。通過結(jié)合其他應(yīng)用程序,比如 Java Web 應(yīng)用程序,我們就可以實現(xiàn)更加豐富的功能了。