最近做一个项目,遇到使用hibernate从sqlserver数据库中读出image类型数据的问题。在此总结一下,
同时也要感谢lovewhzlq和huangnetian的帮忙。
综述:程序中用到的图片有两种方式存储,一是把其地址存入数据库,二是把图片存入数据库,
相比较后者易于管理。
前提:sqlserver数据库中有一张表中有一个字段的类型是image,Dao层使用hibernate框架,实体类和相关的
映射文件有hibernate reverse 生成。
情况:经过hibernate reverse后,和表中image类型字段对应的属性类型被自动生成String 类型的,这是
不合适的。
解决方案:把和表中image类型字段对应的属性类型由String改为byte[]。把和实体相关的映射文件中
的type改为binary。然后用文件输出流把byte[] 中的内容由内存写入磁盘。剩下操作按照需求做成即可。
可能遇到的情况:请参见:http://www.iteye.com/problems/14944