`

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 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 11g Administration Handbook

    ### Oracle WebLogic Server 11g Administration Handbook #### 关于本书 《Oracle WebLogic Server 11g Administration Handbook》是一本全面介绍了Oracle WebLogic Server 11g管理方面的书籍,适用于那些希望深入...

    Oracle WebLogic Server开发权威指南.pdf

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

    oracle weblogic portal.pdf

    根据提供的文件信息,我们可以归纳出以下关于Oracle WebLogic Portal的关键知识点: ### 一、Oracle WebLogic Portal概述 **Oracle WebLogic Portal** 是一款由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 Server 11g 安装和部署(windows)

    Oracle WebLogic Server 11g 安装和部署(Windows) Oracle WebLogic Server 11g 是一个功能强大且广泛使用的Java EE应用服务器,用于构建企业级的Web应用程序。以下是Oracle WebLogic Server 11g 安装和部署在...

    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 Server 10.3.0.0下载.txt

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

    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 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