各位用户为了找寻关于使用用SQL语句从电脑导入图片到数据库的方法的资料费劲了很多周折。这里教程网为您整理了关于使用用SQL语句从电脑导入图片到数据库的方法的相关资料,仅供查阅,以下为您介绍关于使用用SQL语句从电脑导入图片到数据库的方法的详细内容
使用SQL语句从电脑导入图片到数据库的方法,具体代码如下所示:
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27--创建图片表
CREATE
TABLE
W_PIC
(
ID
INT
,
--编号
WPATH
VARCHAR
(80),
--完整路径
PIC
VARCHAR
(80),
--图片名称,不带后缀
img image
--图片内容
)
--图片表中插入数据
INSERT
INTO
W_PIC(ID,WPATH,PIC)
SELECT
1,
'C:UserswDesktop产品图片2#加工图34-C专用.jpg'
,
'2#加工图34-C专用'
UNION
ALL
SELECT
2,
'C:UserswDesktop产品图片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代码就省去了。
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45package 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:UsersAdministratorDesktop1.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(
"srccopy.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