Java读取oracle数据库中blob字段数据文件保存到本地文件
时间:2019-03-21
本文章向大家介绍Java读取oracle数据库中blob字段数据文件保存到本地文件,主要包括Java读取oracle数据库中blob字段数据文件保存到本地文件使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
转自:https://www.cnblogs.com/forever2698/p/4747349.html
package com.bo.test; import java.io.FileOutputStream; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /** * 示例说明: * JAVA读取Oracle数据库BLOB字段数据文件并保存到本地文件 * 1. 使用Oracle的JDBC驱动。 * 2. BLOB字段中存储的是一个文件,把BLOB字段中存储的内容保存到磁盘中形成文件。 * 程序代码片断如下: * * */ public class ReadDBIo2File { public ReadDBIo2File() { } public static void main(String args[]) { ReadDBIo2File test = new ReadDBIo2File(); if (test.getDate()) { System.out.print("操作成功!"); } else { System.out.print("操作异常!"); } } public boolean getDate() { Connection conn = null; Statement sql = null; ResultSet rs = null; try { try { // Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // String sourceURL = "jdbc:odbc:ORDB"; Class.forName("oracle.jdbc.driver.OracleDriver"); String sourceURL = "jdbc:oracle:thin:@192.168.12.251:1521:oracle"; String user = "hhus"; String password = "hhus"; conn = DriverManager.getConnection(sourceURL, user, password); sql = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); // 注:“ini”字段为BLOB字段 String sqlstr = "select * from report_file t where t.id = '6475880'"; rs = sql.executeQuery(sqlstr); while (rs.next()) { String name = rs.getString("id"); // 如下使用JdbcOdbcDriver则报错:Hit uncaught exception // java.lang.UnsupportedOperationException // java.sql.Blob blob = rs.getBlob("ini"); // 注意这里的写法:使用的是OracleDriver //reportfile数据库中的blob字段 oracle.sql.BLOB blob = (oracle.sql.BLOB) rs.getBlob("reportfile"); String filepath = "C:/" + name + ".pdf"; System.out.println("输出文件路径为:" + filepath); try { InputStream in = blob.getBinaryStream(); // 建立输出流 FileOutputStream file = new FileOutputStream(filepath); int len = (int) blob.length(); byte[] buffer = new byte[len]; // 建立缓冲区 while ((len = in.read(buffer)) != -1) { file.write(buffer, 0, len); } file.close(); in.close(); } catch (Exception e) { System.out.println("I/O Exception."); return false; } } } finally { rs.close(); sql.close(); conn.close(); } } catch (SQLException e) { System.out.println("SQLException."); return false; } catch (ClassNotFoundException e) { System.out.println("ClassNotFoundException."); return false; } return true; } }
- centos6下ActiveMQ+Zookeeper消息中间件集群部署记录
- 发布一个轻量级的滑块控件
- as3:sprite作为容器使用时,最好不要指定width,height
- openssl版本升级操作记录
- 清除浮动(clearfix hack)
- Linux下环境变量配置方法梳理(.bash_profile和.bashrc的区别)
- 小程序火爆的因素
- Log4Net使用心得
- nginx通过https方式反向代理多实例tomcat
- Linux系统下yum镜像源环境部署记录
- 特斯拉vs凯迪拉克vs奔驰:三大汽车自动驾驶系统比拼
- Centos下添加静态路由(临时和永久有效)的操作记录
- python如何保证输入键入数字
- 微信小程序自定义数据分析试水
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法