1. 程式人生 > 資料庫 >使用用SQL語句從電腦匯入圖片到資料庫的方法

使用用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,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,@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,len);
        }
        fos.close();
        inputStream.close();
      }
      JDBCUtils.closeConnection(null,connection);
    }
  }

總結

以上所述是小編給大家介紹的使用用SQL語句從電腦匯入圖片到資料庫的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們網站的支援!
如果你覺得本文對你有幫助,歡迎轉載,煩請註明出處,謝謝!