保存/检索数据库中的二进制数据

时间:2011-04-09 00:45:45

标签: java hibernate postgresql tomcat

我在tomcat 6.0.32 x64中部署了一个Web应用程序,它使用Hibernate 3.0连接Postgres 9.0 x64数据库。

该应用程序在数据库中保存二进制字段,当我找到它时,它是不同的。

二进制保存: [-82,120,71,23,-88,67,36,30,57,-72,42,29,-64,93,-8,-103,-63,124,66,20]

二进制获得: [-67,55,56,52,55,49,55,97,56,52,51,50,52,49,101,51,57,98,56,50,97,49,100,99, 48,53,100,102,56,57,57,99,49,55,99,52,50,49,52]

由于

2 个答案:

答案 0 :(得分:0)

你没有提供足够的细节,但是我会想到你会在某些时候将字节翻译成字符(你的输出看起来大约是输入的两倍,java字符是2字节)。 bytes!= chars。

否则,它可能与流的错误使用有关。

答案 1 :(得分:0)

检查你的postgres jdbc驱动程序版本。它应该至少与您的数据库服务器一样新,因此您需要9.0或更高的驱动程序。

我相信在9.0中改变了bytea有线格式,如果你有一个旧驱动程序,这可以解释这个问题。