spring + hibernaye 读取mymql blob
悬赏:5 发布时间:2008-08-08 提问人:不是流氓 (初级程序员)
Hibernate配置文件GameInfo.hbm.xml
读取方法
显示
<property name="pictureMain" lazy="true">
<column name="picture_main" not-null="true"/>
</property>
<property name="picture1" >
<column name="picture1"/>
</property>
<property name="picture2">
<column name="picture2"/>
</property>
读取方法
public Object getRecordById(final Class object, final long id) {
List list = (List) getHibernateTemplate().execute(
new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Criteria criteria = session.createCriteria(object);
criteria.add(Expression.eq("id", id));
return criteria.list();
}
});
if (list.size() == 0)
return null;
return list.get(0);
}
显示
long id = Long.valueOf(request.getParameter("id"));
GameInfo gameInfo = super.getAdminServiceInter().getGameById(id);
byte[] b = gameInfo.getPictureMain();//在这里有异常java.lang.NullPointerException
//但是我在控制台下面就能把图片输出出来,很郁闷
try {
response.setContentType("blob/gif");
OutputStream output = response.getOutputStream();
output.write(b);
output.flush();
output.close();
} catch (Exception e) {
e.printStackTrace();
}
采纳的答案
2008-08-08 小疯子 (资深程序员)
你的意思是把byte[] b输出来吗?你在gameInfo.getPictureMain();都抛java.lang.NullPointerException了, 你怎么能输出来呢?按你抛异常的位置, 应该是gameInfo为null, 在楼主的读取方法中, 既然是根据id来查, 不是只用session.get(object, id)就可以了么, 怎么还用list, 难道楼主的id不是用来作主键的???
提问者对于答案的评价:
谢谢,我还以为是mysql方言的问题,原来ID传错了,呵呵,搞了一个上午没发现ID不一样
还有那个直接get也行,但是我做list还有其他用途




