往mysql新增圖片的方法:先建立一個方法使用FileInputStream讀取圖片;然後連接資料庫並寫入sql語句,用PreparedStatement執行sql語句。
本教學操作環境:windows7系統、mysql8.0.22版,此方法適用於所有品牌電腦。
相關免費學習推薦: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(); } }
相關免費學習推薦:php程式設計(影片)
以上是如何往mysql新增圖片的詳細內容。更多資訊請關注PHP中文網其他相關文章!