最近因为要做点东西很少写文章了。
尤其是技术类的文章。
在网上看了很多关于Java对blob字段的操作。
自己也尝试着写了个,
自己也修改了部分。
代码写得很乱。
数据库:oracle 10G XE
数据源驱动:jdbc12.jar
文件名:WriteBlob
数据库中建立一个为clobtest的表,内有两个字段,name (varchar2(20)),content(blob)。
package dbdriver;
/**
* 2008-09-28
* @author duduli
* email: lxyzj2000@gmail.com
*/
import java.sql.*;
import java.io.*;
import oracle.sql.*;
public class WriteBlob {
public static void main(String[] args) {
try {
String fName2 = "";
String fileName = "E:\\jianxin.bmp";
//E盘下游个jianxin.bmp的图像文件
File f = new File(fileName);
String fName = f.getName();
int i = fName.lastIndexOf('.');
if (i > 0 && i < fName.length()-1){
fName2 = fName.substring(0,i);
}
System.out.println(fName2);
//获得文件名,出去后缀的文件名。
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection conn = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:XE", "system", "duduli ");
conn.setAutoCommit(false);
BLOB blob = null;
PreparedStatement pstmt = conn.prepareStatement("insert into blobtest(name,content) values(?,empty_blob())");
pstmt.setString(1, fName2);
pstmt.executeUpdate();
pstmt.close();
pstmt = conn.prepareStatement("select content from blobtest where name= ? for update");
pstmt.setString(1, fName2);
ResultSet rset = pstmt.executeQuery();
if (rset.next()) {
blob = (BLOB) rset.getBlob(1);
}
FileInputStream fin = new FileInputStream(f);
System.out.println("file size = " + fin.available());
pstmt = conn.prepareStatement("update blobtest set content=? where name=?");
OutputStream out = blob.getBinaryOutputStream();
byte[] data = new byte[(int) fin.available()];
fin.read(data);
out.write(data);
fin.close();
out.close();
pstmt.setBlob(1, blob);
pstmt.setString(2, fName2);
pstmt.executeUpdate();
pstmt.close();
conn.commit();
conn.close();
} catch (SQLException e) {
System.err.println(e.getMessage());
e.printStackTrace();
} catch (IOException e) {
System.err.println(e.getMessage());
}
}
}
分享到:
相关推荐
java中读取ORACLE中BLOB字段存储的图片
有关Oracle对blob字段的操作读取方法,里面有详细的例子
oracle中对blob字段的处理方法,包括增加,删除,修改,更新等操作。
该程序可将ORACLE中BLOB字段导入到SQL SERVER中的IMAGE字段,方便快捷。
只需要安装oracle client在本地,然后配置好tns,输入连接名,用户名,密码,数据表的名称,文件名数据列名以及blob数据列名,就可以批量导出ORACLE数据库BLOB字段生成图片
kettle通过java代码将数据库blob 字段抽取到本地文件
Oracle blob字段上传下载 Oracle blob字段上传下载Oracle blob字段上传下载 Oracle blob字段上传下载
oracle查询blob字段照片(jpeg) 像素大小sql
oracle中blob 字段类型的应用oracle中blob 字段类型的应用oracle中blob 字段类型的应用oracle中blob 字段类型的应用oracle中blob 字段类型的应用oracle中blob 字段类型的应用oracle中blob 字段类型的应用
C#访问oracle数据库类 1、执行非查询命令 2、执行查询命令 3、带blob字段读写
java对oracle数据库中blob字段的处理
可以从数据库中读取blob字段并插入到另一个表中,已经测试通过
此文档是对于oracle数据库中blob类型字段二进制大对象的读取和解析
只需要安装oracle client在本地,然后配置好tns,输入连接名,用户名,密码,数据表的名称,文件名数据列名以及blob数据列名,就可以批量导出ORACLE数据库BLOB字段生成图片
jsp实现向oracle中blob字段上传附件
指定文件夹下的所有文件上传至oracle的blob字段,java实现
使用JAVA读取ORACLE_BLOB字段实现上传下载.doc
Python如何操作Oracle的Blob字段,
java,Blob字段操作,将图片或者文件保存到数据库中.zip
基于JSP访问ORACLE数据库BLOB字段并显示图形的解决方案.pdf