mysql导入图片语句_使用用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语句从电脑导入图片到数据库的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值