applicationContext.xml文件
<!-- lobHiandler,Oracle9i使用 -->
<bean id="lobHandler" lazy-init="true"
class="org.springframework.jdbc.support.lob.OracleLobHandler">
<property name="nativeJdbcExtractor">
<ref bean="nativeJdbcExtractor" />
</property>
</bean>
<bean id="nativeJdbcExtractor" lazy-init="true"
class="org.springframework.jdbc.support.nativejdbc.SimpleNativeJdbcExtractor" />
<!-- 配置sessionFactory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>classpath:hibernate.cfg.xml</value>
</property>
<property name="lobHandler" ref="lobHandler"/>
</bean>
//头像和指纹图片
FormFile photo = managerForm.getPhoto();
if( null!=photo){
proManager.setPhoto(photo.getFileData());
}
FormFile Finger_mark = managerForm.getFinger_mark();
if( null!= Finger_mark ){
proManager.setFinger_mark(Finger_mark.getFileData());
}
ActionForm和POJO都改为byte[] , Hibernate会自动映射为Blob字段
/**
* 显示图片
* @param mapping
* @param form
* @param request
* @param response
* @return null
* @throws Exception
*/
public ActionForward disPic(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
//获取容器
ProjectManagerService proService = (ProjectManagerService)getBean("projectServiceImpl");
//得到ID
String id = request.getParameter("id").trim();
String img = request.getParameter("img").trim();
//根据ID查询对象
ProjectManager proManager = proService.searchID(id);
//判断显示头像还是指纹
byte[] blob = null;
if("photo".equals(img)){
blob = proManager.getPhoto();
}
if("finger".equals(img)){
blob = proManager.getFinger_mark();
}
//这里用的是ServletOutputStream;
ServletOutputStream out = response.getOutputStream();
out.write(len);
return null;
}
本文介绍了一个使用Spring框架和Hibernate技术栈实现的项目中如何处理和展示Blob类型数据的方法。具体包括了如何配置applicationContext.xml来支持Oracle数据库中的Blob操作,以及如何在Java代码中将图片等文件数据保存为Blob,并从数据库中读取出来进行展示。
1108

被折叠的 条评论
为什么被折叠?



