今天开发项目时,要用到上传与下载,struts2默认会用File类型进行接收页面上传文件的信息,后台使用byte[]存储到数据库中,中间需要将File类型转化成byte[]类型,我现在突然有两个问题,如下:
1,当hibernate存储java.io.File类型时,hibernate将此类型以什么形式存储到数据库中?是不是将此对象序列化后存储在数据库中?因为Fiel实现了Serializble接口。
2,假如hibernate将File类型的对象存储到数据库后,当取出此对象后能不能通过页面进行下载?请指教!谢谢
1,当hibernate存储java.io.File类型时,hibernate将此类型以什么形式存储到数据库中?是不是将此对象序列化后存储在数据库中?因为Fiel实现了Serializble接口。
2,假如hibernate将File类型的对象存储到数据库后,当取出此对象后能不能通过页面进行下载?请指教!谢谢
解决方案 »
- prototype ajax怎么返回List
- MyEclipse7.0,手动创建Hibernate环境时,提示:This project is not a MyEclipse Hibernate
- struts2.0使用include标签引入jsp页穿参数的问题
- 当一个好的程序员要学好什么?
- struts架构下,JBUILD环境,jsp页面上传图片出现小部分数据丢失。请指点迷津。
- 用户登录的时候,设了一个SESSION,后面怎么调用?
- 第一次碰struts,编译报错UserForm.java:2: package org.apache.struts.action does not exist
- tomcat加载工程的时候出错【有图】
- weblogic部署项目启动时出现错误
- cxf webservice 如何返回List<Map>? 急 求大神支招
- 关于webservice客户端的,是自动生成还是自己写?请教
- 关于 开源JfreeChart的生成图表问题
import java.sql.Blob;
import net.sf.hibernate.*;
import oracle.sql.*;
import java.io.*;
public class TestCatHibernate {
public static void testBlob() {
Session s = null;
byte[] buffer = new byte[1];
buffer[0] = 1;
try {
SessionFactory sf = HibernateSessionFactory.getSessionFactory();
s = sf.openSession();
Transaction tx = s.beginTransaction();
Cat c = new Cat();
c.setName("Robbin");
c.setImage(Hibernate.createBlob(buffer));
s.save(c);
s.flush();
s.refresh(c, LockMode.UPGRADE);
BLOB blob = (BLOB) c.getImage();
OutputStream out = blob.getBinaryOutputStream();
String fileName = "oraclejdbc.jar";
File f = new File(fileName);
FileInputStream fin = new FileInputStream(f);
int count = -1, total = 0;
byte[] data = new byte[(int)fin.available()];
fin.read(data);
out.write(data);
fin.close();
out.close();
s.flush();
tx.commit();
} catch (Exception e) {
System.out.println(e.getMessage());
} finally {
if (s != null)
try {
s.close();
} catch (Exception e) {}
}
}
}
我不是想让hibernate怎样存储文件内容,我只想关心我上面的两个问题,我重申一下
1,hibernate以什么形式将File类型存储到数据库中?
2,hibernate以File对象存储到数据库后能不能通过页面进行下载?
请大家看懂我的意思,谢谢,在线等啊!
继续等待