首頁  >  文章  >  資料庫  >  如何往mysql新增圖片

如何往mysql新增圖片

coldplay.xixi
coldplay.xixi原創
2020-12-16 11:05:354640瀏覽

往mysql新增圖片的方法:先建立一個方法使用FileInputStream讀取圖片;然後連接資料庫並寫入sql語句,用PreparedStatement執行sql語句。

如何往mysql新增圖片

本教學操作環境:windows7系統、mysql8.0.22版,此方法適用於所有品牌電腦。

相關免費學習推薦:mysql影片教學

#往mysql新增圖片的方法:

1.效果

如何往mysql新增圖片

#不是存了個字串哈,可以看左邊的資料型別。

2. 取得blob資料

我們建立一個方法使用FileInputStream讀取圖片,還有ByteArrayOutputStream#將讀取取的資料寫入byte[]數組,然後

public static byte[] getImgStr(String path) throws IOException {
        FileInputStream fis = new FileInputStream(path);
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        int len = 0;
        byte[] b = new byte[1024];
        while ((len = fis.read(b))!= -1){
            out.write(b,0,len);
        }
        //接收out
        byte[] array = out.toByteArray();
        fis.close();
        out.close();
        return array;
    }

3.連接資料庫並寫入sql語句

使用Blob建立一個Blob,然後將我們取得的圖片資料轉換成blob類型,然後用PreparedStatement執行sql語句,因為它支援佔位符並且有setBlob方法可以直接將我們的blob位址中的值寫入資料庫。然後就大功告成了。

    public static void main(String[] args) {
        /*
        加载驱动
         */
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            //获取连接
            String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC";
            String user= "root";
            String password ="123456";
            try {
                Connection connection = DriverManager.getConnection(url,user,password);
                /*
                插入图片
                 */
                byte[] arr = getImgStr("图片地址");
                Blob blob = connection.createBlob();
                blob.setBytes(1,arr);
                String sql = "insert into pictures (name,pic,date) values('张三',?,'2015-01-01')";
                PreparedStatement ps = connection.prepareStatement(sql);
                ps.setBlob(1,blob);
                ps.executeUpdate();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        } catch (ClassNotFoundException | IOException e) {
            e.printStackTrace();
        }
    }

相關免費學習推薦:php程式設計(影片)

以上是如何往mysql新增圖片的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn