@RequestMapping(value = "files.action")
public void files(HttpServletRequest request, HttpServletResponse response) {
try {
String faId = request.getParameter("id");
GzryFjxx fjxx = gzryFjxxServ.getByFaId(faId);
Blob img = fjxx.getTp();
long size = img.length();
byte[] b = img.getBytes(1, (int) size);
if (b.length > 0) {
for (int i = 0; i < b.length; i++) {
if (b[i] < 0) {
b[i] += 256;
}
}
String filename = java.net.URLEncoder.encode(fjxx.getText(),"UTF-8");
response.addHeader("Content-Disposition","attachment;filename=" + filename);
response.addHeader("Content-Transfer-Encoding", "binary");
response.setContentType("image/jpg");//MIME类型
OutputStream outs = response.getOutputStream();
outs.write(b);
outs.flush();
outs.close();
}
} catch (Exception e) {
System.out.println(e);
}
}
//Hibernate实体类:
import java.sql.Blob;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
@Entity
@Table(name = "T_GZRY_FJXX")
public class GzryFjxx {
private String id;
private Blob tp;
private String text;
@Id
@GeneratedValue(generator = "paymentableGenerator")
@GenericGenerator(name = "paymentableGenerator", strategy = "uuid")
public String getId() {
return this.id;
}
public void setId(String id) {
this.id = id;
}
@Column(name = "TP")
public Blob getTp() {
return tp;
}
public void setTp(Blob tp) {
this.tp = tp;
}
@Column(name = "TEXT", length = 200)
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
}
分享到:
相关推荐
在Oracle数据库中,BLOB类型的字段具有特殊的处理方式,尤其在使用JDBC(Java Database Connectivity)和Hibernate框架时,需要特别注意其写入过程。以下是对“JDBC+Hibernate将Blob数据写入Oracle”这一主题的深入...
本篇将详细介绍如何使用JDBC(Java Database Connectivity)与Hibernate框架来操作Oracle数据库中的BLOB字段。 首先,Oracle数据库的BLOB字段提供了对大对象的高效存储,它的性能优于LONG字段,尤其适合存储大容量...
在J2EE开发中,处理大数据对象(如大文本或二进制数据)时,Oracle数据库的CLOB字段常被用来存储超过4000字节的信息。Spring和Hibernate框架结合使用可以有效地进行CLOB字段的操作。以下是实现这一功能的关键步骤和...
在实体类中,你可以定义一个Blob类型的属性来表示数据库中的Blob字段: ```java @Entity public class MediaEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Lob ...
在本文中,我们将深入探讨如何在Java环境下,利用Spring和Hibernate框架处理Oracle数据库中的LOB(Large Object)字段。LOB字段通常用于存储大体积的数据,如文本、图片或视频。在实际开发中,处理这类数据时可能会...
在Java的持久化框架Hibernate中,Blob类型常用于存储大对象(Large Object),如图片、音频、视频或大型文本文件等。本篇文章将深入探讨如何使用Hibernate读取数据库中的Blob字段,以及涉及到的相关知识点。 首先,...
总结起来,在Hibernate中处理Oracle数据库中的Clob和Blob字段,主要涉及以下几个步骤: 1. 在实体类中定义Clob和Blob字段,并使用`@Lob`注解。 2. 配置Hibernate的JDBC连接,使用支持Clob和Blob高效操作的Oracle ...
在本示例中,我们将探讨如何使用Oracle数据库、Hibernate ORM框架以及Uploadify插件处理Blob类型的大数据,如图片或文件上传。Blob(Binary Large Object)是数据库中用于存储二进制大对象的类型,常用于存储图片、...
### Struts2框架介绍 Struts2是一个基于Java语言...同时,对于未来技术选型,Oracle数据库推荐优先考虑使用CLOB和BLOB类型来存储大型数据,因为这些类型比LONG类型拥有更好的特性,例如更大的容量和更好的操作灵活性。
在Java的持久化框架Hibernate中,处理大数据类型如Oracle数据库中的Clob(Character Large Object)和Blob(Binary Large Object)字段是一项重要的任务。Clob通常用于存储大量的文本数据,而Blob则适用于二进制...
在Java开发中,有时我们需要存储二进制大数据,如图片、视频或文档,这时Oracle数据库中的Blob类型就显得尤为重要。Blob(Binary Large Object)是Oracle用来存储大对象数据的类型,它可以高效地处理大量的二进制...
其中,`imageData`是Blob字段,用于存储图片数据。 3. **读取图片并转换为Blob** 使用`FileInputStream`读取图片文件,然后将其转换为`Blob`对象。可以使用`PreparedStatement`的`setBlob()`方法将Blob对象设置为...
在Hibernate的`SessionFactory`配置中,需要指定`lobHandler` Bean来处理CLOB和BLOB字段: ```xml <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> ...
struts+hibernate+spring+blob 三个框架集成了一下,主要包括利用struts的上传附件功能,并把上传的图片存储到oracle的blob字段。并提供显示。 没做过多的限制,还有很多bug别见怪,功能跑得通!
在 Hibernate 中,Blob 类型的字段通常被映射为 `java.sql.Blob` 类型。该类提供了对数据库中 Blob 数据的操作接口。对于不同的数据库管理系统(DBMS)如 Oracle、MySQL 或 MSSQL,Blob 的处理方式略有不同,这主要...
数据表的 Blob 字段在 Java 对象中声明为 `byte[]` 类型,而在 Hibernate 映射文件中使用 `BlobByteArrayType` 类型。 **文件上传** Struts 通过将 HTML 表单中的 `file` 输入类型映射到 `ActionForm` 中的 `...
Struts2,Hibernate3,Spring2实现oracle存取blob字段(图片等二进制文件) Myeclipse6.0下开发 哈哈,原来2分的,现在免费了!!!!!!!!!!!!!!!!!!!!!!!!给评分哦!!!!!!!!!!!!!!!!
在处理Blob字段时,Spring提供了OracleLobHandler,它能处理Oracle数据库的Blob类型字段,并且可以方便地在不同的数据库之间移植,因为它的API与具体的数据库驱动程序无关。在Hibernate映射文件中,Blob字段的type...