第一步:创建图片表
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数据库的操作。