`
vv_1024
  • 浏览: 111416 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

jdbc 操作 Oracle 中的 BLOB 字段

    博客分类:
  • J2EE
阅读更多
java 代码
 
  1. package test;  
  2.   
  3. import java.io.BufferedInputStream;  
  4. import java.io.FileInputStream;  
  5. import java.io.PrintStream;  
  6. import java.sql.Connection;  
  7. import java.sql.DriverManager;  
  8. import java.sql.ResultSet;  
  9. import java.sql.SQLException;  
  10. import java.sql.Statement;  
  11.   
  12. public class Test {  
  13.     private Connection conn;  
  14.   
  15.     /** 
  16.      * 得到一个数据库的连接 
  17.      * 
  18.      * @return 返加Connection对象 
  19.      */  
  20.     public Connection getConnection() {  
  21.         try {  
  22.             Class.forName("oracle.jdbc.driver.OracleDriver");  
  23.             conn = DriverManager.getConnection(  
  24.                     "jdbc:oracle:thin:@localhost:1521:lyx""scott""tiger");  
  25.         } catch (ClassNotFoundException e) {  
  26.             // TODO Auto-generated catch block  
  27.             e.printStackTrace();  
  28.         } catch (SQLException e) {  
  29.             // TODO Auto-generated catch block  
  30.             e.printStackTrace();  
  31.         }  
  32.         return conn;  
  33.     }  
  34.   
  35.     /** 
  36.      * 向表中插入图片 
  37.      * 
  38.      * @param path图片所在的路径 
  39.      * @return 整形 判断成功或失败 
  40.      */  
  41.     public int insertImage(String path) throws Exception {  
  42.         int i = 0;  
  43.         Statement st = null;  
  44.         ResultSet rs = null;  
  45.         conn=this.getConnection();  
  46.           
  47.         conn.setAutoCommit(false);//设置数据库为不自动提交,必须的一步  
  48.         st = conn.createStatement();  
  49.         //先插入一个空对象,这里我调用了Empty_BLOB()函数  
  50.         i = st  
  51.                 .executeUpdate("insert into image (id,image) values (seq1.nextval,Empty_BLOB())");  
  52.         //以行的方式锁定  
  53.         rs = st  
  54.                 .executeQuery("select image from image where id=(select max(id) from image) for update");  
  55.         if (rs.next()) {  
  56.             //得到流  
  57.             oracle.sql.BLOB blob = (oracle.sql.BLOB) rs.getBlob(1);  
  58.             //从得到的低级流构造一个高级流  
  59.             PrintStream ps = new PrintStream(blob.getBinaryOutputStream());  
  60.             BufferedInputStream bis = new BufferedInputStream(  
  61.                     new FileInputStream(path));  
  62.             byte[] buff = new byte[1024];  
  63.             int n = 0;  
  64.             //从输入到输出  
  65.             while ((n = bis.read(buff)) != -1) {  
  66.                 ps.write(buff, 0, n);  
  67.   
  68.             }  
  69.             //清空流的缓存  
  70.             ps.flush();  
  71.             //关闭流,注意一定要关  
  72.             ps.close();  
  73.             bis.close();  
  74.         }  
  75.         rs.close();  
  76.         st.close();  
  77.         conn.close();  
  78.         return i;  
  79.     }  
  80.   
  81.     public static void main(String[] args) throws Exception {  
  82.         Test test=new Test();  
  83.         test.insertImage("e:\\3.jpg");  
  84.         System.out.println("OK");  
  85.     }  
  86. }  
分享到:
评论

相关推荐

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

    本文将详细介绍如何在Java应用程序中读取存储在Oracle数据库BLOB字段中的图片数据。 #### 二、准备工作 为了实现读取Oracle数据库中的BLOB字段存储的图片,我们需要进行以下准备: 1. **环境搭建**: - Oracle...

    oracle中读取blob字段.doc

    为了演示如何在Oracle中操作BLOB字段,首先需要创建一个包含BLOB字段的表。以下是一条创建表`BLOBTEST`的SQL语句: ```sql CREATE TABLE BLOBTEST ( ID NUMBER PRIMARY KEY, NAME VARCHAR2(20), PICTURE BLOB );...

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

    Java对Oracle数据库中BLOB字段的处理涉及多个层面,包括读取、写入、更新以及跨数据库操作等。 ### Java处理Oracle BLOB字段的基本方法 #### 1. 读取BLOB字段 在Java中,读取Oracle数据库中的BLOB字段通常通过`...

    JDBC操纵Oracle数据库中的BLOB字段

    根据JDBC 2.0规范,可以通过`setBinaryStream`方法来向BLOB字段中写入数据。下面是一个完整的Java示例代码,演示了如何将本地文件中的图像数据写入Oracle数据库的BLOB字段: ```java import java.io.File; import ...

    使用JDBC4.0操作Oracle中BLOB类型的数据方法

    在Java的JDBC4.0版本中,Oracle数据库的BLOB类型数据操作变得更加方便。BLOB(Binary Large Object)是用来存储大对象,如图像、音频或视频文件等二进制数据的数据库字段类型。以下是对使用JDBC4.0操作Oracle中BLOB...

    Oracle blob字段上传下载

    3. **写入文件内容:** 将文件内容写入到Blob字段中。 ##### 示例代码(上传部分): ```java public static void uploadBlob(Connection cn, MmsNewsVO evo) throws Exception { // 获取元素主键 String medpk =...

    jdbc读写Oracle的CLOB字段

    JDBC读写Oracle的CLOB字段

    jdbc+hibernate存取blob字段

    本篇将详细介绍如何使用JDBC(Java Database Connectivity)与Hibernate框架来操作Oracle数据库中的BLOB字段。 首先,Oracle数据库的BLOB字段提供了对大对象的高效存储,它的性能优于LONG字段,尤其适合存储大容量...

    jsp实现向oracle中blob字段上传附件

    通过以上步骤,我们实现了使用JSP向Oracle中的BLOB字段上传附件的功能。这个过程涉及到Web表单提交、文件上传处理、JDBC数据库操作、事务管理和错误处理等多个知识点。在实际开发中,可以进一步封装为服务层方法,以...

    jdbc中如何处理Oracle___BLOB字段

    ### JDBC中如何处理Oracle BLOB字段 在Java开发过程中,特别是在使用JDBC(Java Database Connectivity)与Oracle数据库交互时,处理BLOB(Binary Large Object)类型的数据是一项常见的需求。BLOB通常用于存储大量的...

    Struts用JDBC的Blob字段保存和读取Oracle数据库

    本文将详细介绍如何使用Struts结合JDBC操作Oracle数据库中的Blob字段实现文件的保存和读取。 #### 代码分析 根据提供的部分代码示例,我们可以将其分为两个主要部分:文件保存和文件读取。 ##### 文件保存 文件...

    JDBC+Hibernate将Blob数据写入Oracle

    在IT领域,尤其是在数据库...总之,无论是使用JDBC还是Hibernate,正确处理Oracle中的BLOB字段都是至关重要的,尤其是在处理大量二进制数据的应用场景下。掌握上述流程和技巧,能够有效提升数据操作的效率和安全性。

    sql server中的image类型的数据导出到oracle的clob字段中

    为了将 SQL Server 中的 Image 类型数据导出到 Oracle 的 CLOB 字段中,我们需要使用Java 语言和 JDBC 驱动程序。下面是一个示例代码,演示如何将 SQL Server 中的 Image 类型数据导出到 Oracle 的 CLOB 字段中: ...

    使用JDBC和Hibernate来写入Blob型数据到Oracle中

    以下是使用JDBC直接操作Blob字段的步骤: 1. 注册并加载Oracle的JDBC驱动: ```java DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); ``` 2. 创建数据库连接: ```java Connection ...

    mysql oracle 插入blob数据实例源码

    MySQL和Oracle都是广泛使用的数据库管理系统,它们都支持Blob类型的字段来存储这类数据。本篇文章将深入探讨如何在MySQL和Oracle数据库中插入Blob数据,并提供相关的源码实例。 一、MySQL中的Blob数据插入 MySQL...

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

    本教程将深入探讨如何使用Java进行Blob字段的操作,以实现将图片或文件保存到数据库中。 1. **Blob字段的理解** Blob是SQL标准定义的一种数据类型,它能够存储大量的二进制数据,如图像、音频文件、PDF文档等。在...

    java读写oracle的blob字段示例

    【Java读写Oracle BLOB字段】在Java编程中,与Oracle数据库交互时,有时需要处理存储大对象(LOB)的数据,比如图片、音频或大型文本文件。BLOB类型用于存储二进制大对象,本文将详细介绍如何使用Java来读取和写入...

    一个关于更新Oracle中Blob问题

    在Java中,我们通常使用`oracle.jdbc.driver.OracleCallableStatement`或`oracle.jdbc.driver.OraclePreparedStatement`类来处理Blob字段。`setBlob()`方法用于设置Blob值,而`getBlob()`用于获取Blob数据。 2. ...

Global site tag (gtag.js) - Google Analytics