您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關往mysql中添加圖片的方法的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。
往mysql中添加圖片的方法:首先創建一個方法使用FileInputStream讀取圖片;然后連接數據庫并寫入sql語句,用PreparedStatement執行sql語句。
相關免費學習推薦:mysql視頻教程
往mysql中添加圖片的方法:
1.效果
不是存了個字符串哈,可以看左邊的數據類型。
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(); } }
感謝各位的閱讀!關于往mysql中添加圖片的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。