t;2" align="center">
<input type="submit" value=" 确 认 ">
</td>
</tr>
<tr>
<td colspan="2" align="center"> <font id="info" color="red"><%=message %></font></td>
</tr>
</table>
</form>
处理业务逻辑类:
public class TestLobAction extends DispatchAction{
public ActionForward save(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
try{
//设置文件标题
String title = request.getParameter("title");
TestLob testLob = new TestLob();
testLob.setTitle(title);
//处理blob字段
Hashtable files = form.getMultipartRequestHandler().getFileElements();
FormFile blobTestFile = (FormFile) files.get("blobTest"); //得到文件
String blobName = blobTestFile.getFileName(); //得到文件名
testLob.setBlobName(blobName); //设置文件
byte[] blobContent=blobTestFile.getFileData(); //得到文件内容
testLob.setBlobContent(blobContent); //设置文件内容
//处理clob字段
String clobName = title; //文件名就是标题名
String clobContent = request.getParameter("clobTest"); //得到文件
testLob.setClobName(clobName); //设置文件名
testLob.setClobContent(clobContent); //设置文件
TestLobService testLobService = TestLobService.getInstance();
if(testLobService.createTestLob(testLob)==0){
request.setAttribute("message", "上传失败");
return list(mapping,form,request,response);
}
}catch(Exception e){
throw new BaseException();
}
request.setAttribute("message", "上传成功");
return list(mapping,form,request,response);
}
}
利用Hibernate储存大对象到达梦数据库(4)
时间:2011-03-07 IT专家网 徐欣
因为clob字段对应的是String类型,所以可以直接将表单中得到的数据设置到对象的属性中去,而blob类型处理的是二进制类型的文件,我们需要将得到的文件以流的形式存入到对象的属性中,这里我使用了struts的FormFile组件来进行文件的上传,将得到的数据流设置到对象的属性中。
完成以上操作后我们就可以将设置好的对象用以下面的方法保存数据到数据库中:
首先定义一个Hibernate的Session管理类:HibernateUtil.java,它是使用ThreadLocal类建立的一个Session管理的辅助类。
package com.dm.lobtest.util;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
public class HibernateUtil {
private static SessionFactory sessionFactory = null;
public static final ThreadLocal session = new ThreadLocal();
public static Session currentSession() throws HibernateException {
if (sessionFactory == null) {
if (getSystemSessionFactory() == false) {
throw new HibernateException(
"Exception geting SessionFactory ! ");
|