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 = ...
随机推荐
- 安装unity3d多个版本共存
转自:https://www.cnblogs.com/xsgame/p/3549486.html 用4.3打开两个低版本的unity工程,都报错.... 用低版本打开正常,希望Unity3D版本兼容性 ...
- android app rate on google play and amazon
http://stackoverflow.com/questions/11393191/linking-back-to-amazon-app-store-for-ratings public st ...
- 动态背景插件Backstretch
Backstretch是一款简单的jQuery插件,可以帮助你给网页添加一个动态的背景图片,可以自动调整大小适应屏幕的尺寸,当然这样做的缺点是当图片尺寸比屏幕小的时候,图片会因为自动延伸而变形,所以我 ...
- NetBpm 安装篇(1)
尊重别人劳动成果 转载注明出处:http://www.cnblogs.com/anbylau2130/p/3875718.html 官方主页 http://www.netbpm.org/docs/in ...
- http 返回码 405 解决方案之一
今天做网络请求数据的时候遇到返回码405,当时就傻了~~ 故事是这样的-- 我用post请求访问一个url,服务端数据是一个json的txt文件,理论上直接访问,返回json,然后解析就没事了,可是今 ...
- iOS 解决UIScrollView布局问题(布局受statusBar和NavigationBar影响)
iOS APP中有一个非常好用的功能,那就是当我们在滚动一个UIScrollView滚动了很远很远的时候,假如我们想让UIScrollView回到顶部,我们绝大多数人的做法就是慢慢慢慢的滚动UIScr ...
- mysql类型对应Java的类型
整型 JDBCtinyint java.lang.Integersmallintmediumint java.lang.Longint bigint ...
- ubuntu 上安装vnc server
Ubuntu下设置VNCServer Virtual Network Computing(VNC)是进行远程桌面控制的一个软件.客户端的键盘输入和鼠标操作通过网络传输到远程服务器,控制服务器的操作 ...
- MyEclipse 10 下在线安装插件
昨天不知道怎么就删除了电脑中的eclipse 我x,还原不回来了. 今天就安装了最新版本的myeclipse10,大家都知道,MyEclipse 中有一个烦人的 Software and Worksp ...
- HttpClient详细解释
Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且 ...