Java將圖片資源以二進位的形式儲存到Sqlserver資料庫中

來源:互聯網
上載者:User

標籤:statement   package   man   ble   []   pack   lse   jdbc   nal   

如何使用Java語言將圖片資源以二進位的形式儲存的資料庫中

 

在sqlserver中建立表

use MyDb1
go

create table SaveImg(
id varchar(10) primary key,
img image not null
)

select *from SaveImg

 

使用微軟提供的sqljdbc4.jar進行資料庫儲存,開始我使用的是jtds發現儲存不了,然後才使用的sqljdbc,這個我沒有細究,有興趣的可以試試。

Java的demo

package com.ht.save;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

import java.sql.SQLException;

public class SaveImgProc {
    private static Connection conn;
    private static PreparedStatement ps;

    private static FileInputStream fis;

    public static void main(String[] args) {
        
        //將圖片資源轉換成二進位資源

        String UserName = "sa";
        String Password = "sa";
        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            conn = DriverManager.getConnection(
                    "jdbc:sqlserver://xxx.xx.xxx.xx:1433;databaseName=MyDb1",
                    UserName, Password);

            ps = conn.prepareStatement("insert into SaveImg values(?,?)");
            String filePath="F:/images/p4.jpg";
            
            InputStream is=readImgStream(filePath);
            //ps.setString(1, x);
            ps.setString(1, "sp0006");
            ps.setAsciiStream(2, is);

            int i = ps.executeUpdate();
            if(i>0){
                System.out.println("圖片資源插入成功");
            }
            
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
        
            if (ps != null) {
                try {
                    ps.close();
                } catch (SQLException e) {

                    e.printStackTrace();
                }
            }
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    /***
     * 讀取圖片資源,並將圖片資源轉換成位元組
     * @param path圖片資源的路徑
     * @return 檔案輸入資料流
     */
    public static InputStream readImgStream(String path){
        File file = new File(path);
        // 對SQL的參數賦值
        try {
            fis = new FileInputStream(file);
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return fis;
        
    }
}

Java將圖片資源以二進位的形式儲存到Sqlserver資料庫中

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.