MySQL是一個常用的關系型數據庫管理系統,不僅可以存儲文字、數字等常見數據類型,還可以存儲二進制數據,如圖片、音頻和視頻等。那么,如何批量導入圖片到MySQL數據庫中呢?本篇文章將詳細介紹方法。
第一步:創建圖片表
CREATE TABLE `picture` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL COMMENT '圖片名稱', `type` varchar(10) DEFAULT NULL COMMENT '圖片類型', `data` longblob COMMENT '圖片數據', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='圖片庫';
第二步:編寫導入腳本
可以選擇Python或Java等編程語言,使用MySQL的connector或jdbc驅動程序連接MySQL數據庫,并使用INSERT語句將圖片數據插入到picture表中。下面以Python為例:
import mysql.connector # 連接MySQL數據庫 mydb = mysql.connector.connect( host="localhost", user="root", password="123456", database="testdb" ) # 打開圖片文件 with open("picture.jpg", "rb") as f: data = f.read() # 插入圖片數據 mycursor = mydb.cursor() sql = "INSERT INTO picture (name, type, data) VALUES (%s, %s, %s)" val = ("picture.jpg", "jpg", data) mycursor.execute(sql, val) mydb.commit() print(mycursor.rowcount, "記錄插入成功。")
第三步:批量導入圖片
將多張圖片放在同一個文件夾中,編寫循環代碼,遍歷文件夾中的所有圖片文件,并將圖片數據批量插入到MySQL數據庫中。下面以Python為例:
import os folder = "D:/pictures" mydb = mysql.connector.connect( host="localhost", user="root", password="123456", database="testdb" ) mycursor = mydb.cursor() for filename in os.listdir(folder): if filename.endswith(".jpg") or filename.endswith(".png"): path = os.path.join(folder, filename) with open(path, "rb") as f: data = f.read() name, ext = os.path.splitext(filename) sql = "INSERT INTO picture (name, type, data) VALUES (%s, %s, %s)" val = (name, ext[1:], data) mycursor.execute(sql, val) mydb.commit() print("批量導入成功。")
至此,通過以上步驟,即可實現將多張圖片批量導入到MySQL數據庫的操作。