0
我有一個SWT/Hibernate/Postgresql應用程序,我想在我的數據庫中添加一個圖像作爲byte []並顯示它。byte []搞砸了數據庫
這裏是相關的代碼來加載一個bean中的圖像。 AFAIK,它工作正常。
InputStream is = new FileInputStream(file);
long length = file.length();
if (length > Integer.MAX_VALUE) {
is.close();
return false;
}
byte[] image = new byte[(int)length];
int offset = 0;
int numRead = 0;
while (offset < image.length && (numRead=is.read(image, offset, image.length-offset)) >= 0) {
offset += numRead;
}
if (offset < image.length) {
result = false;
}
is.close();
然後我簡單地設置我的字節[]圖像中的豆,在這樣的休眠建立(傳統的hbm.xml):
<property name="image" type="byte[]"/>
並且這樣的數據庫設置:
CREATE TABLE ...
(
...
image bytea,
...
)
當我在數據庫(工作)創建記錄並立即使用代碼在我的SWT應用程序中顯示圖像時(因此字節數組真的是由上面的一段代碼創建的),它可以正常工作並顯示圖像。但是,當我運行我的應用程序,並從我的數據庫中檢索記錄時,圖像是不可讀的。我在創建和數據庫檢索後記錄了字節數組的內容,它們並不完全相同。可能是什麼原因?
嗯,我曾在類似的問題,但沒有看到這一個:可能重複http:// stackoverflow.com/questions/5602111/saving-retrieving-binary-data-from-database?rq=1 – Steph