色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql數據庫中保存圖片

錢多多2年前10瀏覽0評論

MySQL數據庫是一種廣泛使用的關系型數據庫,可以輕松存儲各種類型的數據,包括圖像。然而,存儲圖像需要一種不同的方法,因為圖像數據需要以二進制格式儲存。在本文中,我們將學習如何使用MySQL數據庫保存圖像。

CREATE TABLE `image_table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`image` longblob,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

上述代碼創建了一個包含圖像的數據表。表中包含三個字段:id、name和image。其中,id字段定義為自增主鍵,name字段定義為可選的圖像名稱,而image字段則是用于存儲圖像的二進制數據。

FileInputStream fis = new FileInputStream("image.jpg");
PreparedStatement ps = conn.prepareStatement("INSERT INTO image_table (name, image) VALUES (?, ?)");
ps.setString(1, "test image");
ps.setBinaryStream(2, fis, fis.available());
ps.executeUpdate();

上述代碼插入了一個名為 "test image" 的圖像數據到數據庫中。首先,代碼使用Java的FileInputStream類讀取圖像文件 "image.jpg" 的字節流。其次,使用Prepared Statement將圖像名稱和字節流綁定到SQL語句中,并使用executeUpdate方法執行SQL語句以將圖像數據保存到MySQL數據庫中。

Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM image_table WHERE name = 'test image'");
if (rs.next()) {
Blob blob = rs.getBlob("image");
InputStream is = blob.getBinaryStream();
OutputStream os = new FileOutputStream("new_image.jpg");
byte[] buffer = new byte[4096];
int length = 0;
while ((length = is.read(buffer)) != -1) {
os.write(buffer, 0, length);
}
os.close();
is.close();
}

上述代碼從數據庫中檢索圖像數據。首先,使用Java的Statement類執行一個SELECT查詢,以檢索與名稱為 "test image" 的圖像數據。接下來,使用ResultSet類從結果集中提取Blob對象,并將其轉換為InputStream以進行讀取。然后,使用Java的FileOutputStream類將圖像數據寫入新文件 "new_image.jpg" 中。最后,關閉輸入流和輸出流以釋放資源。