`

Java读取Oracle BLOB字段

阅读更多
/**
* JDBC连接数据库并写入BLOB字段
* @author DaHai
*
*/
public class OracleBlob {
public static void main(String[] args) {
OracleBlob ob= new OracleBlob ();
ob.insert("c:\\Test.txt");
}

public Connection getConnection() {
Connection conn = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:test", "scott", "tigger");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}

public void insert(String str) {
Connection conn = getConnection();
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
conn.setAutoCommit(false);
pstmt = conn.prepareStatement("insert into test (wygjz,wdmc,wd) values (?,?,empty_blob())");
pstmt.setString(1, "163");
pstmt.setString(2, "dahai");
pstmt.executeUpdate();
pstmt = conn.prepareStatement("select wd from test where wygjz=163 for update");
rs = pstmt.executeQuery();
while (rs.next()) {
oracle.sql.BLOB blob = (oracle.sql.BLOB)rs.getBlob(1);
OutputStream os = blob.getBinaryOutputStream();
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(str));
byte[] buf = new byte[2048];
int len = 0;
if ((len = bis.read(buf)) != -1) {
os.write(buf, 0, len);
os.flush();
}
os.close();
bis.close();
}
conn.commit();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
try {
if(conn!=null){
conn.rollback();
}
} catch (SQLException e1) {
e1.printStackTrace();
}
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
if(rs!=null){
rs.close();
rs = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if(pstmt!=null){
pstmt.close();
pstmt = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if(conn!=null){
conn.close();
conn = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}

}


如果用Spring配置的话,可以将上面的getConnection()方法替换成

public Connection getConnection(){
Connection conn = null;
ApplicationContext ctx = new ClassPathXmlApplicationContext("dbconfigs.xml");
        DataSource ds = (DataSource) ctx.getBean("dataSource");
try{
conn = ds.getConnection();
if(conn != null){
System.out.println("数据库连接成功!");
}

}catch(SQLException e){
e.printStackTrace();
}
return conn;
}
分享到:
评论

相关推荐

    使用JAVA读取ORACLE_BLOB字段实现上传下载.doc

    使用 JAVA 读取 ORACLE BLOB 字段实现上传下载 BLOB(Binary Large Objects)是一种二进制大对象类型,常用于存储大对象,例如图形、声音等。我们可以将 BLOB 区分为三种形式:声像数据、二进制数据和大文本数据。...

    java中读取ORACLE中BLOB字段存储的图片

    ### Java中读取Oracle数据库BLOB字段存储的图片方法详解 #### 一、背景与目的 在实际的应用开发过程中,经常会有将图片等二进制数据存入数据库的需求。Oracle数据库支持通过BLOB(Binary Large Object)类型来存储...

    java对oracle数据库中blob字段的处理

    在Java中,读取Oracle数据库中的BLOB字段通常通过`java.sql.Blob`类实现。这个类提供了多种方法来处理BLOB数据,例如`getBytes(long pos, int length)`用于获取BLOB的一部分或全部内容。以下是一个简单的示例: ```...

    oracle中读取blob字段.doc

    在Java应用程序中读取Oracle数据库中的BLOB字段通常涉及到几个步骤:建立数据库连接、执行查询语句、获取结果集并从中提取BLOB数据,最后将这些数据写入到文件中。 ##### 3.1 加载Oracle驱动 在Java程序中使用...

    oracle blob 字段 读写 delphi

    本篇文章将深入探讨如何在Delphi中对Oracle数据库的BLOB字段进行读写操作。 首先,你需要在Delphi项目中引入Oracle数据库访问的相关组件,如DBExpress或ADO。DBExpress是Delphi内置的一个轻量级数据库访问框架,而...

    java读取大字段blob类型

    本文将详细介绍如何在Java中有效地读取`BLOB`类型的大字段,帮助解决程序员们常遇到的难题。 #### BLOB类型的概述 `BLOB`类型是关系型数据库中用于存储大量二进制数据的一种数据类型。它适用于存储诸如图片、声音...

    C#访问oracle数据库类,带blob字段读写

    读取Blob字段时,可以创建一个`OracleBinary`对象,然后使用`GetValue`方法获取Blob数据。写入Blob字段时,先创建`OracleParameter`对象,将其Direction设置为` ParameterDirection.Input `,OracleDbType设置为`...

    Oracle blob字段上传下载

    ### Oracle Blob字段上传与下载详解 #### 一、概述 在数据库系统中,二进制大对象(Binary Large Object,简称BLOB)是一种用于存储大量二进制数据的数据类型,例如图像、音频或视频文件等。Oracle数据库支持Blob...

    kettle通过java代码将数据库blob 字段抽取到本地文件

    kettle通过java代码将数据库blob 字段抽取到本地文件

    oracle查询blob字段照片(jpeg) 像素大小sql

    本篇文章将详细介绍如何通过SQL查询语句获取存储在Blob字段中的JPEG格式照片的像素大小。 ### 1. 了解Blob数据类型 在Oracle数据库中,Blob(Binary Large Object)类型用于存储大容量的二进制数据,比如图像、音频...

    基于JSP访问ORACLE数据库BLOB字段并显示图形的解决方案.pdf

    该方案使用JSP技术读取ORACLE数据库中的BLOB字段存储的坐标点,然后将坐标传递到JAVA类中显示图形。在图形的正中还显示了编号,充分展示了JSP结合JAVA应用的优势。 知识点1:JSP技术的应用 * JSP(Java Server ...

    Java读取数据库中blob字段并插入到另一个表中

    可以从数据库中读取blob字段并插入到另一个表中,已经测试通过

    批量导出ORACLE数据库BLOB字段生成文件

    本教程将详细讲解如何批量导出Oracle数据库中的BLOB字段并生成文件,适用于需要定期或一次性处理大量图片或其他BLOB数据的场景。 首先,确保你已经在本地安装了Oracle客户端。Oracle客户端提供了SQL*Plus和其他工具...

    ORACLE中BLOB字段导入到SQL SERVER中的IMAGE字段

    1. **数据准备**:确保ORACLE数据库中的BLOB字段包含所需的数据,并且是完整的。可能需要进行数据验证,以确保所有数据都能被正确读取。 2. **数据导出**:使用ORACLE提供的工具,如SQL*Plus或者PL/SQL Developer,...

    Java存取OracleBlob字段,图片存储,Blob和BLOB的问题,Clob,oracle.docx

    ### Java存取Oracle Blob 字段详解 #### 一、Blob 和 BLOB 的区别 在处理 Oracle 数据库中的二进制大型对象(Binary Large Object,简称 Blob)时,开发者经常会遇到两个相似但不同的概念:`java.sql.Blob` 和 `...

    oracle中的BLOB(照片)转换到mysql中

    1. **查询BLOB数据**:使用SQL查询语句从Oracle数据库中选择含有BLOB字段的照片记录。例如: ```sql SELECT photo_blob FROM photos WHERE id = ; ``` 这里`photo_blob`是BLOB类型的列,`<photo_id>`是你想获取...

    Hibernate读取blob字段

    本篇文章将深入探讨如何使用Hibernate读取数据库中的Blob字段,以及涉及到的相关知识点。 首先,我们需要理解Blob类型在数据库中的含义。Blob是Binary Large Object的缩写,它是一种可以存储大量二进制数据的数据...

    java,Blob字段操作,将图片或者文件保存到数据库中.zip

    以上就是Java中Blob字段操作的基本流程,通过这些步骤,你可以成功地将图片或文件保存到数据库中,并能从数据库中读取和恢复这些数据。在实际开发中,根据具体需求,可能还需要处理异常、事务管理和资源关闭等问题,...

    分块读取Blob字段数据演示(Delphi + Oracle)

    分块读取Blob字段是优化大量数据传输的有效策略,避免一次性加载大文件导致内存压力过大。 首先,`createTable.sql` 文件可能包含了创建包含Blob字段的Oracle表的SQL语句。通常,这样的语句会类似于: ```sql ...

    Java与Oracle大字段读写(含代码)

    Oracle提供了高效的流式读写接口,如`OracleBlob`的`getBinaryStream`和`setBinaryStream`方法,可以按需读取或写入数据,减少内存消耗。 另外,为了提高性能和降低网络传输成本,我们还可以考虑使用Oracle的LOB...

Global site tag (gtag.js) - Google Analytics