圖片上傳存儲數據庫2種方法

數據庫Mysql存儲,讀取圖片

在項目中,很多情況下都對圖片的存儲讀取有需求,而圖片怎樣存入數據庫的方式可謂是五花八門,現在就整理一下數據庫與圖片不可不說的關係。

1,路徑存儲在數據庫:

數據庫的存儲資源是有限的,最起碼比磁盤比起來花費會昂貴很多,不可能將圖片視頻等存入數據庫,那麼最有可能的就是中介了,即數據庫中存入的只是圖片或者視頻的地址,路徑等,並不存儲真正的東西,需要的時候就去找中介要地址,然後得到想要的東西。可以直接存儲文件路徑,也可以轉化後存取,個人比較喜歡轉化後存取,這樣對頭像這類信息量比較大,又避免重複來說是一個不錯的選擇,爲了避免重複可以對文件命名時採用java中的UUID實現,UUID是根據電腦的硬件網卡,當前時間(毫秒級)等多種數據組合,全球唯一UUID uuid = UUID.randomUUID();當然也可以存取URL,這是針對網頁數據來說,等使用時,再用URL請求進行圖片的加載。


2,使用blob(binary large Object)二進制大對象存儲:


當然爲了能用數據庫進行存儲,可以將圖片轉化爲二進制對象流,當需要用到時,再以流對象的方式取出,轉化爲所需要的格式。具體的方式爲定義輸入輸出流,inputstream,outputstream,亦可以使用bufferinputstream,和bufferoutputstream。存入數據庫的過程中,使用preparestatement.setBinaryStream.完成二進制的寫入。

讀取時用inputstream輸入流進行接收,然後轉化爲相應的圖片格式。注:mysql中blob不能設置默認值,所以一旦存入圖片有誤後,會發生讀取錯誤,因此需要對出錯進行預判。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章