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 = ...
随机推荐
- mongodb 3.2.x 启动 Warning 错误处理
[root@restore1 data1]# mongod --dbpath=/data/data1/mongodb_data/ --directoryperdb ** WARNING: You ar ...
- 从debian9、ubuntu18.04的deb包依赖来看,似乎不是那么好!!
i386体系的依赖.典型的libuuid1依赖问题,需要downgrade保持版本一致! amd64的rpm依赖低版本的perl-base,需要downgrade保持版本一致!
- php5.4安装fileinfo扩展
Fileinfo 扩展是libmagic库的一个封装,可以用来获得文件的一些信息,如MIME类型 安装php_fileinfo扩展 1.windows 用phpinfo()查看php版本 下载 选择合 ...
- python 数据类型-字符串-对象和方法
python的字符串有众多方法,可以在doc文档中查看 示例 转换开头字母为大写 c1="welcome to my python" >>> c1.capital ...
- mysql中如何修改表的名字?修改表名?
需求描述: 今天在进行mysql表的历史数据迁移,需要将某张表进行备份,修改表的名字,在此记录下操作过程. 操作过程: mysql> create table ts01 like ti_o_sm ...
- [Scikit-learn] 1.1 Generalized Linear Models - Lasso Regression
Ref: http://blog.csdn.net/daunxx/article/details/51596877 Ref: https://www.youtube.com/watch?v=ipb2M ...
- 图表ASP:Chart
ASP:Chart 属性 System.Web.UI.DataVisualization.Charting 命名空间包含用于图表 Web 服务器控件的方法和属性. 详细了解Chart类http:// ...
- SpringMVC由浅入深day02_5数据回显_6异常处理器
5 数据回显 5.1 什么数据回显 表单提交失败需要再回到表单页面重新填写,原来提交的数据需要重新在页面上显示. 5.2 pojo数据回显方法 1.springmvc默认对pojo数据进行回显. po ...
- Git Step by Step – (7) Git远程仓库(续)
上一篇文章介绍了Git远程仓库的一些使用,但是还是有些东西需要补充一下,所以有了这个续篇. .gitignore 前一篇中,我们介绍了Git的patch功能,当我们生成patch之后,"gi ...
- grid网格的流动一
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...