記錄 SpringMVC+Mybatis環境 和 Struts + Hibernate環境 操作mysql存取BLOB資料
阿新 • • 發佈:2019-01-09
SpringMVC+Mybatis環境 和 Struts + Hibernate環境 操作mysql存取BLOB資料
請求流程中的報文需要儲存備用,但有的報文過長,在存MySQL時選擇用BLOB型別 1. 在SpringMVC+Mybatis環境下,直接設定對應的Entity中對應的欄位為byte[]型別,存值時,直接將對應的String報文 getByte, 再存值即可取值時,直接查MySQL 的Blob型別資料到entity的byte[], 再new String輸出即可,如下程式碼 byte[] appToRouteData = dataEntity.getAppToRouteData(); byte[] appFromRouteData = dataEntity.getAppFromRouteData(); System.out.println(" appToRouteData :" + new String(appToRouteData)); System.out.println(" appFromRouteData :" + new String(appFromRouteData)); 2.但是在Struts + Hibernate環境下操作時,則發現轉換出錯,不能設定表對應的entity的欄位為byte[]型別須設定成BLOB型別, 然後再將BLOB型別的資料轉換成String型別輸出,具體解決程式碼如下 BLOB blobData = dataEntity.getAppToRouteData(); ByteArrayInputStream blobDataStream=(ByteArrayInputStream) blobData.getBinaryStream(); byte[] byteData = new byte[blobDataStream.available()]; blobDataStream.read(byteData, 0,byteData.length); String result = new String(byteData); 開發過程中遇到的問題記錄,具體是因為Struts 、SpringMvc OR Mybatis的原因,待測試。