背景:有两个平台,A和B,A平台负责图片的上传,B平台负责图片的展示
今天第一次遇到读二进制图片并显示页面的问题,在网上淘了淘,加上自己实际的情况得以实现,现记录在此,以作备忘。
1.项目中业务处理放在ejb中,ejb直接跟数据库打交道。下面为ejb层方法。
//讲图片以二进制形式返回给Action控制层
public byte[] getMenuInfo(String type)
{
//final byte[] result =new byte[1024];
final List<byte[]> result=new ArrayList<byte[]>();
String sql = "select F_VALUE from suitpicture where f_type=?";
getJdbcTemplate().query(sql, new Object[] { type},
new RowMapper() {
public Object mapRow(ResultSet rs, int index)throws SQLException
{
Blob img=rs.getBlob("F_VALUE");
long size=img.length();
byte[] bs=img.getBytes(1, (int)size);
result.add(bs);
return null;
}
});
if(result!=null&&result.size()>0)
return result.get(0);
else return null;
}
2.Action 层方法
//获取套餐图片信息
public String getMenuInfo()
{
String type=getRequest().getParameter("type");
try {
BusinessRemote br = EJBHomeFactory.getInstance().lookupBusinessRemote();
byte[] bs=br.getMenuInfo(type);
ServletOutputStream outs=getResponse().getOutputStream();
outs.write(bs);
outs.flush();
return null;
} catch (Exception e)
{
addErr("获取图片信息发生错误!");
log.error("获取图片信息发生错误!",e);
}
return null;
}
3.jsp(展示层)
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<img src="getMenuInfo.html?type=XYTC"/>
</body>
</html>
分享到:
相关推荐
通过以上步骤,我们成功地实现了在Java程序中读取Oracle数据库BLOB字段中存储的图片,并在前端页面上显示出来。此方法不仅适用于图片,还可以扩展到其他类型的二进制数据,如音频、视频等文件。这对于构建多媒体应用...
使用 JAVA 读取 ORACLE BLOB 字段实现上传下载需要完成以下几个步骤:上传大对象、将大对象存储在数据库中、使用专门的函数来完成 BLOB 的使用。在 Struts 项目中,我们可以使用 Struts 的文件上传组件来上传大对象...
综上所述,Java读取`BLOB`类型的大字段是一项技术性较强的工作,需要开发者具备良好的编程习惯和对数据库操作的深入了解。通过上述步骤和注意事项,可以帮助程序员们更加高效、安全地处理大型`BLOB`数据。
在Java中,读取Oracle数据库中的BLOB字段通常通过`java.sql.Blob`类实现。这个类提供了多种方法来处理BLOB数据,例如`getBytes(long pos, int length)`用于获取BLOB的一部分或全部内容。以下是一个简单的示例: ```...
可以从数据库中读取blob字段并插入到另一个表中,已经测试通过
在Java应用程序中读取Oracle数据库中的BLOB字段通常涉及到几个步骤:建立数据库连接、执行查询语句、获取结果集并从中提取BLOB数据,最后将这些数据写入到文件中。 ##### 3.1 加载Oracle驱动 在Java程序中使用...
该方案使用JSP技术读取ORACLE数据库中的BLOB字段存储的坐标点,然后将坐标传递到JAVA类中显示图形。在图形的正中还显示了编号,充分展示了JSP结合JAVA应用的优势。 知识点1:JSP技术的应用 * JSP(Java Server ...
在Java中,可以使用`ResultSet.getBinaryStream()`方法读取BLOB流,然后将其写入文件: ```java File outputFile = new File("<output_path>"); FileOutputStream out = new FileOutputStream(outputFile); ...
在数据库管理中,存储非结构化数据...综上所述,`CLOB`和`BLOB`都是在Oracle中存储图片的有效方法,具体选择哪种方式取决于应用场景和需求。`ClobAndBlob`工具提供了一种便捷的方式来体验和比较这两种方式的使用效果。
这里我们主要探讨两种Java从数据库中读取Blob对象图片并显示的方法。 **方法一** 这个方法涉及从数据库获取Blob对象的输入流,并将其直接写入HTTP响应的输出流,以便浏览器可以解析并显示图片。以下是实现步骤: ...
综上所述,使用Hibernate和JDBC读取Oracle数据库中的Blob数据涉及多个步骤,包括实体类的设计、数据库操作和文件流的处理。理解这些知识点对于处理大对象存储至关重要。在实际项目中,根据需求和性能考虑,选择合适...
本教程将详细讲解如何使用Java来实现BLOB(Binary Large Object)类型的大文件,如图片,在Oracle数据库中的存储和查找,这对于初学者理解和掌握JDBC技术极具价值。 首先,我们需要理解BLOB类型。BLOB是Oracle...
- 处理服务器响应,将接收到的字节流转化为图片并显示在页面上,可能使用`data:image/*;base64,`前缀将字节数据转化为Base64编码的图片URL 3. **Oracle数据库**:Oracle是关系型数据库管理系统,BLOB(Binary ...
通过这种方式,你可以有效地管理和处理存储在Oracle数据库中的大量BLOB数据,使其能够以文件形式在本地系统上访问和使用。 总之,批量导出Oracle数据库中的BLOB字段是一项技术性较强的任务,涉及到数据库连接、SQL...
在Java编程中,Oracle数据库是常用的存储系统,尤其在处理大量结构化和非结构化数据时,例如多媒体文件(如MP3)。Oracle数据库支持BLOB(Binary Large Object)类型,用于存储大容量的二进制数据。本篇将详细介绍...
4. **显示图形**: 在Java中绘制图形,并将其显示在JSP页面上。 #### 实现细节 1. **排样数据表设计**: - 设计了一个名为`GY_PARTS_GROUP_DETAIL`的表,用于存储排样后的坐标数据。 - 表结构包括: - `PART_NUM`...
分享在JAVA中Blob转换成String实例
在Java编程中,Blob(Binary Large Object)是用于存储大量二进制数据的数据类型,常被用在数据库中保存图片、文件等非文本信息。本教程将深入探讨如何使用Java进行Blob字段的操作,以实现将图片或文件保存到数据库...
- 在显示图片时,首先需要从数据库中读取 BLOB 数据。 - 将 BLOB 数据转换为 InputStream,并将其写入到 HTTP 响应的输出流中,以实现图片的显示。 - 为了提高用户体验,可以对图片进行适当的缓存处理。 #### ...
kettle通过java代码将数据库blob 字段抽取到本地文件