java如何把文件转化成oracle的blob
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; import oracle.sql.BLOB; public class DbBlobTest { private static
final String DB_URL = "jdbc:oracle:thin:@10.0.7.170:1522:ORCL5"; private static
final String DB_USER = "test"; private static final String
DB_PASSWORD = "test"; private static Connection conn =
null; public static void main(String[] args) throws
Exception {
// insert into blob Connection conn = getConnection(); PreparedStatement ps = conn .prepareStatement("INSERT INTO WORD_FILE (GYO_NUM, WORD_KB, WORD_FILENAME, BIKO, USR_ID, YMDT, WORD_FILE) values(6, 'KYK002', '20171114test.doc', '備考', 'VENAS', TO_DATE('17-11-14', 'RR-MM-DD'), ?)"); String inFile =
"C:/Users/zhangrw/Desktop/test/2nANQz3wsFN8rkrTZa5P8xQY8PRBhyHw.jpg "; //设定的是blob类型
ps.setBlob
(1, file2Blob(inFile));
ps.executeUpdate();
} /**
* test blob data 2 file
*
* @throws Exception
*/
public static void testBlob2File() throws Exception { Connection conn = getConnection(); PreparedStatement ps = conn
.prepareStatement
("select * from WORD_FILE a "); ResultSet rs =
ps.executeQuery();
int index = 1;
while
(rs.next()) {
Blob bl = rs.getBlob("WORD_FILE"); String outFile =
"C:/Users/zhangrw/Desktop/test/dou_" + (index++) + ".doc"; blob2File(bl, outFile);
}
} /**
* upload
* file
* 通过二进制的方式来上传文件
*/
public static void testFile2byte() {
try {
// insert into blob
Connection conn = getConnection(); PreparedStatement ps = conn .prepareStatement("INSERT INTO WORD_FILE(GYO_NUM, WORD_KB, WORD_FILENAME, BIKO, USR_ID, YMDT, WORD_FILE) values(4, 'KYK002', '20171114test.doc', '備考', 'VENAS', TO_DATE('17-11-14', 'RR-MM-DD'), ?)"); String inFile = "C:/Users/zhangrw/Desktop/test/2nANQz3wsFN8rkrTZa5P8xQY8PRBhyHw.jpg "; byte[] result = file2Byte(inFile); //设定的是自己码文件
ps.setBytes(1, result); ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} } /**
* 将文件转化为
* Blob的对象
* create file 2 blob
*
* @param inFile
* @return
*/
public static Blob file2Blob(String inFile) { try { byte[] result = file2Byte(inFile);
//creat a new blob
// BLOB blob = BLOB.createTemporary(conn, true, BLOB.DURATION_SESSION); BLOB blob = BLOB.empty_lob();
//set start is 1
//这个setBytes 是指定起点,然后设定字节
blob.setBytes(1, result); //pub byte 这个方法是添加byte
// blob.putBytes(1, result);
return blob;
} catch (Exception e) {
e.printStackTrace();
}
return null;
} /**
* 将文件转化为二进制的数据
* create file 2 byte
*
* @param inFile
* @return
*/
public static byte[]
file2Byte(String inFile) {
InputStream in = null; try {
in = new FileInputStream(new File(inFile)); int len = in.available();
byte[]
result = new byte[len];
in.read(result); return result;
} catch (Exception e) {
e.printStackTrace();
}
return null; } /**
* 将Blob文件转化为Blob对象
* convert blob to file
*
* @param blob
* @param outFile
*/
public static void blob2File(Blob blob, String outFile) { InputStream in = null;
OutputStream out = null; try {
//通过getBinaryStream 方法获取输入流 in = blob.getBinaryStream();
out = new
FileOutputStream(new File(outFile));
byte[] buff
= new byte[1024];
int len = 0;
while
((len = in.read(buff)) > 0) {
out.write(buff,
0, len);
}
} catch (Exception e) { e.printStackTrace();
} finally {
try { if (in != null) {
in.close(); }
} catch (IOException e) { e.printStackTrace();
}
try { if (out != null) {
out.close(); }
} catch (IOException e) { e.printStackTrace();
}
}
} static { try {
Class.forName
("oracle.jdbc.driver.OracleDriver"); conn =
DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD); } catch (Exception e) {
e.printStackTrace();
}
} public static Connection getConnection() { try { if (conn == null) {
Class.forName
("oracle.jdbc.driver.OracleDriver"); conn =
DriverManager
.getConnection(DB_URL,
DB_USER, DB_PASSWORD);
}
return conn; } catch (Exception e) {
e.printStackTrace();
} return null;
}
}
java如何把文件转化成oracle的blob的更多相关文章
- (已解决)jdk安装 系统找不到文件C:\ProgramData\Oracle\Java\javapath\java.exe
jdk安装好之后,也配置好了环境变量,打开cmd输入javac可以跳出相关信息,可是输入java却一直提示:系统找不到文件C:\ProgramData\Oracle\Java\javapath\jav ...
- loadrunner 脚本开发-调用java jar文件远程操作Oracle数据库测试
调用java jar文件远程操作Oracle数据库测试 by:授客 QQ:1033553122 测试环境 数据库:linux 下Oracle_11g_R2 Loadrunner:11 备注:想学ora ...
- Java学习-019-Properties 文件读取实例源代码
在这几天的学习过程中,有开发的朋友告知我,每个编程语言基本都有相应的配置文件支持类,像 Python 编程语言中支持的 ini 文件及其对应的配置文件读取类 ConfigParse,通过这个类,用户可 ...
- java操作oracle的blob,clob数据
一.区别和定义 LONG: 可变长的字符串数据,最长2G,LONG具有VARCHAR2列的特性,可以存储长文本一个表中最多一个LONG列 LONG RAW: 可变长二进制数据,最长2G CLOB: ...
- Java 图片爬虫,java打包jar文件
目录 1. Java 图片爬虫,制作 .jar 文件 spider.java 制作 jar 文件 添加执行权限 1. Java 图片爬虫,制作 .jar 文件 spider.java spider.j ...
- 工作小结:xml文件导入到oracle
上周遇到xml文件导入到oracle数据库中,发现正常的xml转成excle格式导入,只针对于1m以下的xml文件.当xml文件太大的时候,就没有作用了. 这时候,我找到了两种办法,一个是java,一 ...
- java怎样将一组对象传入Oracle存储过程
注:本文来源 < java怎样将一组对象传入Oracle存储过程 > java怎样将一组对象传入Oracle存储过程 java怎样将一组对象传入Oracle存储过程.须要注意的是jar ...
- POI以SAX方式解析Excel2007大文件(包含空单元格的处理) Java生成CSV文件实例详解
http://blog.csdn.net/l081307114/article/details/46009015 http://www.cnblogs.com/dreammyle/p/5458280. ...
- java解决大文件断点续传
第一点:Java代码实现文件上传 FormFile file = manform.getFile(); String newfileName = null; String newpathname = ...
随机推荐
- 使用 Python 解数学方程
SymPy是符号数学的Python库.它的目标是成为一个全功能的计算机代数系统,同时保持代码简洁.易于理解和扩展 服务器Ubuntu 1.安装Python 2.安装SymPy库 sudo pip in ...
- git 使gitnore立即生效
由于之前有些需要过滤的文件已经提交到版本库了,之后再想起来添加时候已经晚了,使用如下方法 Git忽略规则和.gitignore规则不生效的解决办法 Git忽略规则: 在git中如果想忽略掉某个文件 ...
- [Module] 06 - DataBinding and MVVM
下一步学习列表: Android DataBinding使用总结(一) *** Android DataBinding使用总结(二) Android DataBinding使用总结(三)列表展示 An ...
- ios学习之UIWebView网页视图
转载于爱德凡的百度空间,地址:http://hi.baidu.com/aidfan/item/34a720866b33cbcdef083d37 UIWebView 使用详解 一.UIWebView加载 ...
- struts开发<struts中的參数传递.三>
不说废话,直接上干货 1.通过set和get传递參数 添加username 和password两个属性并添加set和get方法 package fzl.user.struts.demo; import ...
- Visual Studio 添加SVN插件
这两天为了开发一个移动混合式的框架,被迫去学习去使用VisualStudio,这玩意当年离开校园就再也没用过了,再次看到感觉还是很眼熟...,这篇文件就简单说明下VS下怎么安装SVN插件吧: 1 首先 ...
- 使用npm国内镜像
嫌npm指令速度慢的童鞋可以把npm的源转换成国内的即可提高响应速度: 镜像使用方法(三种办法任意一种都能解决问题,建议使用第1或者第3种,将配置写死,下次用的时候配置还在):1.通过config命令 ...
- Java -- 获取MAC地址
啦啦啦 package com.xindatai.common.util; import java.io.InputStream; import java.util.regex.Matcher; im ...
- Kafka(三)-- Kafka主要参数
原文地址:http://debugo.com/kafka-params/ ############################# System ########################## ...
- C++ template —— 函数对象和回调(十四)
本篇是本系列博文最后一篇,主要讲解函数对象和回调的相关内容.函数对象(也称为仿函数)是指:可以使用函数调用语法进行调用的任何对象.在C程序设计语言中,有3种类似于函数调用语法的实体:函数.类似于函数的 ...