厚积薄发———jsp中读取blob字段&oracle

来源:互联网 发布:网络唤醒主板设置 编辑:程序博客网 时间:2024/05/21 09:54
<%@ page contentType="text/html; charset=GBK" language="java" import="java.sql.*" errorPage="" %>  <%@ page import="java.io.*"%>  <%@ page import="java.io.FileOutputStream"%>  <%@ page import="java.io.BufferedOutputStream"%>  <%@ page import="java.sql.Blob"%>  <%@ page import="java.sql.Connection"%>  <%@ page import="java.sql.DriverManager"%>  <%@ page import="java.sql.ResultSet"%>  <%@ page import="java.sql.Statement"%>  <%@ page import="java.util.logging.Level"%>  <%@ page import="com.fr.base.FRContext"%>  <%  String driver = "oracle.jdbc.driver.OracleDriver";  String url = "jdbc:oracle:thin:@192.168.100.169:1521:orcl10g";  String user = "test";  String password = "test123";  Connection connection = null;  OutputStream output = null;  //从请求中获取id的值  String fileid = com.fr.base.CodeUtils.cjkDecode((String)request.getParameter("id"));  try {  //连接数据库  Class.forName(driver);  connection = DriverManager.getConnection(url, user, password);  Statement statement = connection.createStatement();  //定义数据库执行语句,并执行  String sql = "SELECT image FROM TEST.IMAGETEST where ID = '" + fileid + "'";  ResultSet rs = statement.executeQuery(sql);  while(rs.next()){  //读取存放在blob字段中的内容  Blob blob = rs.getBlob(1);  byte[] b = blob.getBytes(1, (int) blob.length());  //文件下载  response.setContentType("application/application/x-msdownload; charset=GBK");          //设置为文件流输出的方式下载     response.addHeader("Content-Disposition", "attachment; filename=out.txt"); //设置下载的文件名称    response.setContentLength((int) blob.length()); //设置下载的文件大小  output = response.getOutputStream();  output.write(b);  output.flush();   }  //下载完毕后将使用的资源关闭  statement.close();  connection.close();  response.getOutputStream().close();  } catch (Exception e) {  e.printStackTrace();  }      %> 

原创粉丝点击