`

oracle,weblogic读写blob

    博客分类:
  • J2EE
阅读更多
一 开发环境:XP+Myeclipse6.6+Weblogic92
二 上传组件: smart-upload
三  示例代码
1 JSP代码
<%@ page language="java" pageEncoding="UTF-8"%>
<form name=form1 method=post enctype="multipart/form-data" action="/testFile">
<input type="file" name="f" id="f"/>
<img src="" id="img" name="img" width="100%" border="0" height="100%"/>
 </form>

2 java代码:保存文件到DB与读取

request.setCharacterEncoding("UTF-8");
try {
			com.jspsmart.upload.SmartUpload mySmartUpload = new com.jspsmart.upload.SmartUpload();
			mySmartUpload.initialize(getServletConfig(), request, response);
			mySmartUpload.upload();
			com.jspsmart.upload.Request rq = mySmartUpload.getRequest();
			byte[] bytes = null;
			//读取上传文件的字节码
			for (int i = 0; i < mySmartUpload.getFiles().getCount(); i++) {
				com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(i);
				if (!myFile.isMissing()) {
					int fileLength = myFile.getSize();					
					bytes = new byte[fileLength];
					for (int j = 0; j < fileLength; j++) {
						bytes[j] = myFile.getBinaryData(j);
					}
				}
			}
			//保存到DB
			if(null != bytes){
				      try {
					java.sql.Connection conn = DbUtils.getConn();
					//test表的fcontext字段类型为:BLOB
					String sql = "update test set fcontext=empty_blob()";
					Statement stmt = conn.createStatement();
					stmt.executeUpdate(sql);			
					sql = "select fcontext from test FOR UPDATE";
					PreparedStatement ps = conn.prepareStatement(sql);					
					ps.executeUpdate();
					java.sql.ResultSet rs = ps.getResultSet();
					if (rs.next()) {
						if (bytes.length > 0) {
							weblogic.jdbc.vendor.oracle.OracleThinBlob content = (weblogic.jdbc.vendor.oracle.OracleThinBlob) 
								rs.getBlob("fcontext");
							OutputStream outstream = content.getBinaryOutputStream();
							try {
								outstream.write(byteContent, 0, byteContent.length);
								outstream.flush();
								outstream.close();
							} catch (IOException e) {
								e.printStackTrace();
							}

						}
					}
					returnValue = true;
					DbUtils.close(rs);
					DbUtils.close(ps);
					DbUtils.close(stmt);
					DbUtils.close(conn);
				} catch (SQLException ex) {
						ex.printStackTrace();
				}
			}
			//从DB中读取
			bytes  = new byte[0];
			try {
				String sql = "select fcontext from test";
				java.sql.Connection conn = DbUtils.getConn();
				PreparedStatement ps = conn.prepareStatement(sql);					
				ps.executeUpdate();
				java.sql.ResultSet rs = ps.getResultSet();
				if(rs.next()){
					java.sql.Blob bolbObject = rs.getBlob("fcontext");
					if (bolbObject != null) {
						int length = (int) bolbObject.length();
						BufferedInputStream inStream = new BufferedInputStream(bolbObject.getBinaryStream());
						returnValue = new byte[length];
						inStream.read(bytes);	        
						inStream.close();
					  }
				}
				DbUtils.close(rs);
				DbUtils.close(ps);
				DbUtils.close(conn);			
			} catch (Exception ex) {			
				ex.printStackTrace();
			}finally{
				//关闭资源
			}

		}catch (SmartUploadException e) {
			e.printStackTrace();
		}
	}


3 读取DB字节数组并映射为图片格式:在web.xml添加相应映射:/ readImg

class ReadDbImage extends HttpServlet 
{

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

	    java.io.ByteArrayInputStream in = null;
		java.io.OutputStream outStream = null;		
		// 禁止图像缓存。
		response.setHeader("Pragma", "no-cache");
		response.setHeader("Cache-Control", "no-cache");
		response.setDateHeader("Expires", 0);
		response.setContentType("image/jpeg");
		//调用DAO类读取Blog为字节数组
		byte[] fcontext = getFilContext();			
		if (fcontext != null) {			
			response.reset();			
			in = new ByteArrayInputStream(fcontext);
			outStream = response.getOutputStream();
			byte[] buf = new byte[1024];
			int bytes = 0;
			while((bytes = in.read(buf)) != -1)
				outStream.write(buf, 0, bytes);
			in.close();
			outStream.close();
			outStream.flush();
			in = null;
			outStream = null;
		}
	}
	
}


4  JS中操作读取DB图片
document.getElementById("img").src="/readImg?time="+new Date();

5 清除附件框值的组件
clearFile.js见附件,中有相应示例

分享到:
评论

相关推荐

    Oracle WebLogic Server

    Oracle WebLogic Server是一款由甲骨文公司开发的企业级Java应用服务器,它在企业信息系统中扮演着重要的角色,特别是在分布式、高可用性和可扩展性要求较高的环境中。本篇将深入探讨Oracle WebLogic Server的关键...

    Oracle-WebLogic-Server-12c-各版本功能特性速查表

    Oracle WebLogic Server 12c是甲骨文公司推出的一款应用服务器,它是为云基础设施建设而设计的现代数据中心首选平台。作为一款基于标准技术的产品,Oracle WebLogic Server 12c为云应用提供了完整的平台支持,旨在...

    oracle weblogic server 11g:administration essentials

    Oracle WebLogic Server 11g: Administration Essentials 是一套全面的学习资源,旨在帮助用户掌握WebLogic Server的基础知识,尤其适合初学者。WebLogic Server是Oracle公司的一款企业级Java应用服务器,它提供了一...

    Oracle Weblogic Server 11gR1 PS2: Administration Essentials

    Oracle WebLogic Server 11gR1 PS2(Patch Set 2)是Oracle公司推出的中间件平台,主要用于构建、部署和管理企业级Java应用程序。它是一个功能强大的应用服务器,提供了全面的企业服务 Bus (ESB)、Java消息服务 (JMS...

    Oracle WebLogic Server开发权威指南.pdf

    《Oracle WebLogic Server开发权威指南》是一本深入探讨Oracle WebLogic Server(WLS)的专著,对于希望在企业级Java应用服务器平台上进行开发、部署和管理应用的IT专业人士来说,是一份不可或缺的参考资料。Oracle ...

    Oracle WebLogic Server 11g下载.txt

    Oracle WebLogic Server 11g下载 Oracle WebLogic Server 10.3.1 包括两个文件: oepe11_ccjk_wls1031_linux32.bin oepe11_wls1031.exe

    oracle weblogic portal.pdf

    根据提供的文件信息,我们可以归纳出以下关于Oracle WebLogic Portal的关键知识点: ### 一、Oracle WebLogic Portal概述 **Oracle WebLogic Portal** 是一款由Oracle公司开发的企业级门户解决方案,主要功能在于...

    Oracle WebLogic Server 12c下载.txt

    Oracle WebLogic Server 12c下载 包括4个文件: fmw_12.1.3.0.0_wls.jar fmw_12.2.1.3.0_wls_Disk1_1of1.zip fmw_12.2.1.4.0_wls_Disk1_1of1.zip oepe-indigo-installer-12.1.1.0.1.201203120349-12.1.1-win...

    Oracle WebLogic Server 10.3.0.0下载.txt

    Oracle WebLogic Server 10.3.0.0下载 包括两个文件: server103_linux32.bin server103_win32.exe

    Oracle WebLogic Server 12cR2 (12.2.1.3) Quick Installer for Developers Part 4

    WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。 这个是Generic ...

    Oracle Weblogic 11g管理手册

    Oracle Weblogic 11g是一款由Oracle公司开发的Java应用服务器,属于中间件软件,主要用于支持企业级应用的部署、运行和管理。作为IT行业运维人员,掌握Oracle Weblogic 11g的安装、配置和管理是必备技能之一。本文档...

    ORACLE Weblogic server 11g Advanced Administration 学员手册 SG

    Oracle WebLogic Server 11g 是一款强大的Java应用服务器,由甲骨文公司(Oracle)开发,用于构建、部署和管理企业级Java应用程序。Advanced Administration 学员手册旨在帮助管理员深入理解和掌握WebLogic Server的...

    Oracle WebLogic Server 11gR1下载.txt

    Oracle WebLogic Server 11gR1下载 Oracle WebLogic Server 10.3.6 包括两个文件: oepe-wls-indigo-installer-11.1.1.8.0.201110211138-10.3.6-win32-weblogic.exe wls1036_generic.jar

    Oracle WebLogic Server 11g: Administration Essentials 教材

    《Oracle WebLogic Server 11g: Administration Essentials》是一套专为学习和掌握Oracle WebLogic Server 11g管理核心概念和技术而设计的教材。该教材由两本学生指南和一本实验指南组成,旨在帮助学员深入理解...

    Oracle Weblogic Server 11g System Administration

    Oracle Weblogic Server 11g System Administration I1Z0-102-2012-08-14-111q

    Supported Configurations for Oracle WebLogic Server 10.3

    Supported Configurations for Oracle WebLogic Server 10.3

    Oracle WebLogic Server 12c First Look

    ### Oracle WebLogic Server 12c:初探与深度解析 #### 核心知识点概览 Oracle WebLogic Server 12c是Oracle公司推出的一款功能强大的应用服务器,它旨在为现代企业级应用提供一个高性能、高可靠性的运行环境。本...

Global site tag (gtag.js) - Google Analytics