使用用SQL语句从电脑导入图片到数据库的方法
作者:同尘 发布时间:2024-01-13 22:29:00
标签:sql,导入,图片,数据库
使用SQL语句从电脑导入图片到数据库的方法,具体代码如下所示:
--创建图片表
CREATE TABLE W_PIC
(
ID INT, --编号
WPATH VARCHAR(80), --完整路径
PIC VARCHAR(80), --图片名称,不带后缀
img image --图片内容
)
--图片表中插入数据
INSERT INTO W_PIC(ID,WPATH,PIC)
SELECT 1, 'C:\Users\w\Desktop\产品图片\2#加工图34-C专用.jpg','2#加工图34-C专用'
UNION ALL
SELECT 2, 'C:\Users\w\Desktop\产品图片\129.jpg','129'
--创建游标
DECLARE CUR_PIC CURSOR FOR SELECT ID,WPATH,PIC FROM W_PIC;
DECLARE @ID int, @PATH VARCHAR(80), @PIC VARCHAR(80), @STR VARCHAR(100);
OPEN CUR_PIC;
FETCH NEXT FROM CUR_PIC INTO @ID, @PATH, @PIC;
WHILE @@FETCH_STATUS=0
BEGIN
SET @STR=STR(@ID);
--插入图片数据
EXECUTE ('UPDATE W_PIC SET img=(SELECT * FROM OPENROWSET(BULK N'''+@PATH+''', SINGLE_BLOB) AS Photo) WHERE ID='+@STR);
FETCH NEXT FROM CUR_PIC INTO @ID, @PATH, @PIC;
END
CLOSE CUR_PIC;
DEALLOCATE CUR_PIC;
知识点扩展:
从MySQL数据库读取图片和向数据库插入图片
MySQL数据库中有一个数据类型为Blob类型,此类型为二进制文件类型。下面为从MySQL数据库读取图片和向数据库插入图片的代码,一些的数据库连接和JDBC代码就省去了。
package com.an.jdbc.bean;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import org.junit.Test;
import com.an.jdbc.utils.JDBCUtils;
public class TestBlob {
//向数据库中插入图片
@Test
public void test1() throws Exception{
String sql = "update beauty set photo = ? where id = ?";
Connection connection = JDBCUtils.getConnection();
PreparedStatement ps = connection.prepareStatement(sql);
FileInputStream fis = new FileInputStream("C:\\Users\\Administrator\\Desktop\\1.jpg");
ps.setBlob(1, fis);
ps.setInt(2, 2);
int update = ps.executeUpdate();
System.out.println(update>0?"success":"failure");
JDBCUtils.closeConnection(null, ps, connection);
}
//从数据库中读取一张图片
@Test
public void test2() throws Exception{
String sql = "select photo from beauty where id=?";
Connection connection = JDBCUtils.getConnection();
PreparedStatement ps = connection.prepareStatement(sql);
ps.setInt(1, 2);
ResultSet set = ps.executeQuery();
if(set.next()){
InputStream inputStream = set.getBinaryStream(1);
FileOutputStream fos = new FileOutputStream("src\\copy.jpg");
byte[] b = new byte[1024];
int len = -1;
while((len=inputStream.read(b))!=-1){
fos.write(b, 0, len);
}
fos.close();
inputStream.close();
}
JDBCUtils.closeConnection(null, ps, connection);
}
}
总结
以上所述是小编给大家介绍的使用用SQL语句从电脑导入图片到数据库的方法,网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
来源:https://www.cnblogs.com/WJJ-1119/archive/2019/09/02/11445176.html


猜你喜欢
- 前言MySQL是一个高速度、高性能、多线程、开放源代码,建立在客户/服务器(Client/Server)结构上的关系型数据库管理系(RDBM
- 首先我们先引入requests模块import requests一、发送请求r = requests.get('https://ap
- ant-design-vue自定义使用阿里iconfont图标\第一步:从iconfont获取项目js链接第二步 在需要引用iconfont
- Web网站可用性的关键指标是速度,更确切地说,是页面能以多快的速度出现在访问者的浏览器窗口里。影响速度的因素有很多种,包括Web服务器的速度
- Pandas查询数据的几种方法df.loc方法,根据行、列的标签值查询df.iloc方法,根据行、列的数字位置查询df.where方法df.
- tensorflow在保存权重模型时多使用tf.train.Saver().save 函数进行权重保存,保存的ckpt文件无法直接打开,不利
- 额额,标题已经很醒目了,通过中间件去实现,其他方法也可以实现浏览器前端传来的请求,必须通过中间件,才能到后面路由,视图函数,所以我们在中间件
- 严格控制Session可以将不需要Session的内容(比如帮助画面,访问者区域,等等)移动到关闭Session的独立ASP应用程序中。在基
- Innodb数据库对于已经删除的数据只是标记为删除,并不真正释放所占用的磁盘空间,这就导致InnoDB数据库文件不断增长。如果在创建数据库的
- !important;严格来说,!important;应该不能算作是一种hack技术,被应用了!important;的属性将在IE中无效,对
- 在日常应用中,往往根据实际需求录入一些值,而这些值不能直接使用,所以Sql中经常会对字段值进行一些常规的处理。这里搜集了(提取数字、英文、中
- 在开始使用Go进行编码时,Defer是要关注的一个很重要的特性。它非常简单:在任何函数中,给其他函数的调用加上前缀 defer以确保该函数在
- 介绍两个关键的CSS <style media="print">  
- 1.能调用方法的一定是对象,比如数值、字符串、列表、元组、字典,甚至文件也是对象,Python中一切皆为对象。 str1 = 'he
- 1.0简介三维图像技术是现在国际最先进的计算机展示技术之一,任何普通电脑只需要安装一个插件,就可以在网络浏览器中呈现三维的产品,不但逼真,而
- 背景在注册或者登陆场景下,经常会遇到需要输入图片验证码的情况,最经典的就是12306买火车票。图片验证码的破解还是有一定难度的,而且如果配合
- 爬虫的起因官方文档或手册虽然可以查阅,但是如果变成纸质版的岂不是更容易翻阅与记忆。如果简单的复制粘贴,不知道何时能够完成。于是便开始想着将A
- 本文实例为大家解析了vue中track-by的属性,供大家参考,具体内容如下api:http://cn.vuejs.org/guide/li
- 1.在用windows模式登陆sql server 数据库 简历一个student的数据库,然后新建查询:create table stud
- 发现问题最近在工作中遇到了一个问题,在定义了schema之后,每一次save都会报E11000,但是db.xxx.find()里面根本就没有