`
akunamotata
  • 浏览: 378762 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Hibernate存取图片示例

    博客分类:
  • DB
阅读更多

FileInputStream in=new FileInputStream("C://test.gif");
Blob photo=Hibernate .createBlob (in);
我们这里是从磁盘中读取图片,实际应用中你可以利用上传组件得到图片的2进制数据流,并利用Hibernate .createBlob 方法来构造相应的Blob对象.而取图片则使用

InputStream in=photo.getBinaryStream();

这只是个简单的测试类,如果我想从数据库中取出图片并现实在页面上该如何做呢?其实也很简单,我们先要写一个servlet,在它的service方法中取出图片,并"画"到指定页面上.

 

package com.easyjf.asp.action;

import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Blob;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import com.denny)blue.hibernate.User;


public class Test extends HttpServlet {

/**
 * Destruction of the servlet. <br>
 */
private Session session;
public void destroy() {
try{
session.close();
}catch(HibernateException e){
e.printStackTrace();
}
}

/**
 * Initialization of the servlet. <br>
 *
 * @throws ServletException if an error occure
 */
public void init() throws ServletException {
try{
Configuration config=new Configuration().configure();
SessionFactory sf=config.buildSessionFactory();
session=sf.openSession();
}catch(HibernateException e){
e.printStackTrace();
}
}
 public void doGet(HttpServletRequest request,HttpServletResponse response)
 {
 try{
User user=(User)session.load(User.class, new Integer(1));
Blob photo=user.getPhoto();
InputStream in=photo.getBinaryStream();
OutputStream out=response.getOutputStream();
byte [] buf=new byte[1024];
int len;
while((len=in.read(buf))!=-1){
out.write(buf, 0, len);
}
in.close();
out.close();
}catch(Exception e){
e.printStackTrace();
}
 }

}

通过response.getOutputStream取得输出流,其他就与上段代码一致.servlet写好了,怎么在页面调用呢?那就更简单啦,直接在页面的img标签的src属性上调用该servlet即可,如:
<img id="test" src="/servlet/Test"/>
简单的例子,希望对初学者有帮助.

附记:如果不希望在servlet(或者action之类)中进行保存操作,希望在DAO进行此操作,那么InputStream的关闭问题可以通过hibernate 的interceptor机制解决

分享到:
评论

相关推荐

    Hibernate学习代码示例

    这个“Hibernate学习代码示例”压缩包文件为初学者提供了丰富的学习资源,帮助他们理解并掌握Hibernate的核心概念和实际应用。 首先,让我们详细探讨一下Hibernate的基础知识。Hibernate是一个开源的ORM框架,它的...

    Hibernate示例

    在本示例中,我们将探讨如何使用 Hibernate 进行基本的数据存取操作。 **环境准备** 在开始 Hibernate 示例之前,我们需要确保以下组件已经准备就绪: 1. JDK:确保安装了 Java 开发环境,并设置好 `JAVA_HOME` ...

    hibernate存取oracle的clob

    ### Hibernate 存取 Oracle 的 CLOB 在 Java 开发中,使用 Hibernate 框架进行数据库操作是非常常见的。其中,处理 Oracle 数据库中的 CLOB 类型数据是一项重要的技能。CLOB(Character Large Object)是一种用于...

    jdbc+hibernate存取blob字段

    在Java的数据库编程中,有时我们需要处理存储大量二进制数据的情况,比如图片、音频或视频文件等。这种数据通常会被存储在BLOB(Binary Large Object)类型的字段中。本篇将详细介绍如何使用JDBC(Java Database ...

    Struts2+Spring3+Hibernate3学习示例

    在运行示例前,你需要创建对应的数据库和表,并配置项目的数据库连接信息,以确保数据能正确地存取。 总的来说,这个"Struts2+Spring3+Hibernate3学习示例"是一个完整的Java Web开发基础架构,它展示了如何集成这三...

    hibernate的第一个例子

    测试类会创建并操作持久化对象,调用辅助类的方法,验证数据是否正确地存取到数据库中。例如,创建一个新的User对象,保存到数据库,然后查询验证其是否成功存储。 5. **配置文件(Hibernate.cfg.xml)**:每个...

    hibernate存取json数据的代码分析

    标题中的“hibernate存取json数据的代码分析”指的是在Java开发中,使用Hibernate框架来存储和检索JSON格式的数据。Hibernate是一个强大的ORM(对象关系映射)框架,它允许开发者将Java对象直接映射到数据库表,但在...

    struts2+hibernate+spring多表操作示例

    在多表操作中,这三个框架协同工作,使得数据的存取和业务逻辑的处理变得更加便捷。以下将详细介绍如何利用Struts2、Hibernate和Spring进行多表操作: 1. **Struts2**:作为前端控制器,Struts2接收用户的HTTP请求...

    Hibernate Eclipse开发必备包

    在Java世界中,Hibernate是一个非常流行的持久化框架,它简化了数据库操作,使得开发者可以更加专注于业务逻辑,而不是底层的数据存取。Eclipse作为一款强大的Java集成开发环境(IDE),为开发者提供了丰富的插件...

    spring+hibernate整合demo

    标题"spring+hibernate整合demo"表明这是一个示例项目,展示了如何将Spring和Hibernate这两个框架结合使用。整合Spring和Hibernate可以使应用程序更易于管理,因为Spring可以控制Hibernate的生命周期,并提供事务...

    Hibernate简单的demo

    Hibernate 是一款强大的Java持久化框架,它简化了数据库操作,使得开发者能够更加专注于业务逻辑,而不是繁琐的数据存取。这个“Hibernate简单的demo”是为了帮助初学者理解并快速上手Hibernate框架而设计的。 **...

    一个好的hibernate源代码有server2008数据库

    这里我们可以理解为,这是一个关于Hibernate框架的示例项目,它使用了Microsoft SQL Server 2008作为后端数据库。Hibernate是Java开发中常用的一个对象关系映射(ORM)框架,它能够将Java类与数据库表进行映射,简化...

    Spring4+Hibernate4+HTML5WebSocket简单应用示例

    例如,一个在线聊天室应用,用户发送的消息通过WebSocket实时传递给其他在线用户,同时这些消息在数据库中的存取则由Spring和Hibernate协同完成。 5. **源码和工具**: 标签“源码”意味着这个示例可能包含实际的...

    Hibernate初之单表映射学习例子

    在这个例子中,我们可能会看到如何创建实体类、配置Hibernate的XML映射文件,以及如何在代码中使用SessionFactory和Session来存取数据。 【标签解析】 "Hibernate"标签明确了讨论的主题,即Hibernate ORM框架。这个...

    最新的hibernate3.6.0jar包

    Hibernate 是一个开源的对象关系映射(ORM)框架,它允许开发者使用面向对象的编程模型来操作数据库,从而简化了Java应用程序中的数据存取工作。在Java世界中,Hibernate 已经成为了开发人员处理数据库交互的标准...

    Hibernate构建一个CURD的程序

    在IT行业中,Hibernate是一个非常重要的Java持久化框架,它简化了数据库操作,使得开发者能够更加专注于业务逻辑,而不是底层的数据存取细节。本教程将深入探讨如何使用Hibernate构建一个完整的CRUD(创建、读取、...

    Hibernate入门教程.pdf

    通过ORM技术,Hibernate能够在Java对象和关系数据库之间建立一种映射关系,使得开发人员可以直接操作Java对象来进行数据的存取,而无需编写复杂的SQL语句。 #### 二、为什么选择Hibernate? 1. **减少SQL编写**:...

    hibernate架包

    Hibernate 是一个开源的对象关系映射(ORM)框架,它允许开发者使用面向对象的编程模型来操作数据库,从而简化了Java应用程序中的数据存取工作。在Java世界里,Hibernate 已经成为了开发人员处理数据库交互的标准...

    Hibernate 参考实例

    在"Hibernate 参考实例"中,我们将深入探讨如何使用Hibernate进行数据存取,包括基本的配置、实体类的创建、映射文件的编写、Session的使用以及查询操作。下面将详细介绍这些关键知识点。 1. **基本配置**: 使用...

    hibernate 杂谈

    1. **Hibernate存取JSON数据(换一种思路来存取数据)** 在某些场景下,如订单系统中存储优惠信息,这些信息可能是只读且不需频繁变更的文本数据。传统的做法可能涉及创建关联表,但这可能导致不必要的复杂性。一个...

Global site tag (gtag.js) - Google Analytics