1.
数据库中的字段:private Blob pdf;
2.
DAO文件操作:插入
SessionFactory sf = getHibernateTemplate().getSessionFactory();
Session s = sf.openSession();
Transaction tran=s.beginTransaction();
transientInstance.setPdf(Hibernate.createBlob(new byte[1]));
s.save(transientInstance);
s.flush();
s.refresh(transientInstance,LockMode.UPGRADE);
Blob blob=transientInstance.getPdf();
InputStream is;
is = blob.getBinaryStream();
FileInputStream img = null;
try {
System.out.println("dao filePaht 11 == " + filePath);
String filePath1 = "";
try {
filePath1 = new String(filePath.getBytes("iso8859-1"),"utf-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("dao filePaht 22 == " + filePath1);
img = new FileInputStream(filePath1);
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Blob images = null;
try {
images = (Blob) Hibernate.createBlob(img);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
transientInstance.setPdf(images);
System.out.println("save dao == " + transientInstance.getPdf());
s.save(transientInstance);
tran.commit();
DAO操作 输出:
public String menuPdf(){
response = ServletActionContext.getResponse();
System.out.println("id == " + id);
menu = treeService.findById(id);
System.out.println("blob pdf == " + menu.getPdfid());
Nipdf nipdf = pdfService.findById(menu.getPdfid());
String fileName = nipdf.getName();
if(nipdf.getPdf() != null){
System.out.println("有BOLB文档了");
//Nipdf ni = pdfList.get(i);
try {
//从数据库中要读取出来
System.out.println(nipdf.getPdf().length());
InputStream is = nipdf.getPdf().getBinaryStream();
//在把写到一个图片格式的文件里
FileOutputStream fos = new FileOutputStream("e:\\out_" + nipdf.getName());
byte[] buffer = new byte[1024];
int len = 0;
//从数据库中读取到指定的字节数组中
while((len = is.read(buffer) )!= -1){
//从指定的数组中读取,然后输出来,所以这里buffer好象是连接inputStream和outputStream的一个东西
fos.write(buffer,0,len);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
}
}
return SUCCESS;
}
数据库中的字段:private Blob pdf;
2.
DAO文件操作:插入
SessionFactory sf = getHibernateTemplate().getSessionFactory();
Session s = sf.openSession();
Transaction tran=s.beginTransaction();
transientInstance.setPdf(Hibernate.createBlob(new byte[1]));
s.save(transientInstance);
s.flush();
s.refresh(transientInstance,LockMode.UPGRADE);
Blob blob=transientInstance.getPdf();
InputStream is;
is = blob.getBinaryStream();
FileInputStream img = null;
try {
System.out.println("dao filePaht 11 == " + filePath);
String filePath1 = "";
try {
filePath1 = new String(filePath.getBytes("iso8859-1"),"utf-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("dao filePaht 22 == " + filePath1);
img = new FileInputStream(filePath1);
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Blob images = null;
try {
images = (Blob) Hibernate.createBlob(img);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
transientInstance.setPdf(images);
System.out.println("save dao == " + transientInstance.getPdf());
s.save(transientInstance);
tran.commit();
DAO操作 输出:
public String menuPdf(){
response = ServletActionContext.getResponse();
System.out.println("id == " + id);
menu = treeService.findById(id);
System.out.println("blob pdf == " + menu.getPdfid());
Nipdf nipdf = pdfService.findById(menu.getPdfid());
String fileName = nipdf.getName();
if(nipdf.getPdf() != null){
System.out.println("有BOLB文档了");
//Nipdf ni = pdfList.get(i);
try {
//从数据库中要读取出来
System.out.println(nipdf.getPdf().length());
InputStream is = nipdf.getPdf().getBinaryStream();
//在把写到一个图片格式的文件里
FileOutputStream fos = new FileOutputStream("e:\\out_" + nipdf.getName());
byte[] buffer = new byte[1024];
int len = 0;
//从数据库中读取到指定的字节数组中
while((len = is.read(buffer) )!= -1){
//从指定的数组中读取,然后输出来,所以这里buffer好象是连接inputStream和outputStream的一个东西
fos.write(buffer,0,len);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
}
}
return SUCCESS;
}