`

java中操作Blob字段

阅读更多
此代码已经用过,不过,代码中有些方法已经过时,所以不提倡使用,不过,后面几天将更新最新的代码。
JAVA操作Oracle blob类型
关键字: java blob
java 代码
package test;   
  
import java.io.BufferedInputStream;   
import java.io.FileInputStream;   
import java.io.PrintStream;   
import java.sql.Connection;   
import java.sql.DriverManager;   
import java.sql.ResultSet;   
import java.sql.SQLException;   
import java.sql.Statement;   
  
public class Test {   
    private Connection conn;   
  
    /**  
     * 得到一个数据库的连接  
     *   
     * @return 返加Connection对象  
     */  
    public Connection getConnection() {   
        try {   
            Class.forName("oracle.jdbc.driver.OracleDriver");   
            conn = DriverManager.getConnection(   
                    "jdbc:oracle:thin:@localhost:1521:lyx", "scott", "tiger");   
        } catch (ClassNotFoundException e) {   
            // TODO Auto-generated catch block   
            e.printStackTrace();   
        } catch (SQLException e) {   
            // TODO Auto-generated catch block   
            e.printStackTrace();   
        }   
        return conn;   
    }   
  
    /**  
     * 向表中插入图片  
     *   
     * @param path图片所在的路径  
     * @return 整形 判断成功或失败  
     */  
    public int insertImage(String path) throws Exception {   
        int i = 0;   
        Statement st = null;   
        ResultSet rs = null;   
        conn=this.getConnection();   
           
        conn.setAutoCommit(false);//设置数据库为不自动提交,必须的一步   
        st = conn.createStatement();   
        //先插入一个空对象,这里我调用了Empty_BLOB()函数   
        i = st.executeUpdate("insert into image (id,image) values (seq1.nextval,Empty_BLOB())");   
        //以行的方式锁定   
        rs = st.executeQuery("select image from image where id=(select max(id) from image) for update");   
        if (rs.next()) {   
            //得到流   
            oracle.sql.BLOB blob = (oracle.sql.BLOB) rs.getBlob(1);   
            //从得到的低级流构造一个高级流   
            PrintStream ps = new PrintStream(blob.getBinaryOutputStream());   
            BufferedInputStream bis = new BufferedInputStream(   
                    new FileInputStream(path));   
            byte[] buff = new byte[1024];   
            int n = 0;   
            //从输入到输出   
            while ((n = bis.read(buff)) != -1) {   
                ps.write(buff, 0, n);   
  
            }   
            //清空流的缓存   
            ps.flush();   
            //关闭流,注意一定要关   
            ps.close();   
            bis.close();   
        }   
        rs.close();   
        st.close();   
        conn.close();   
        return i;   
    }   
  
    public static void main(String[] args) throws Exception {   
        Test test=new Test();   
        test.insertImage("e:\\3.jpg");   
        System.out.println("OK");   
  
  
    }   
  
}   
分享到:
评论

相关推荐

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

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

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

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

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

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

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

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

    oracle中读取blob字段.doc

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

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

    使用 JAVA 读取 ORACLE BLOB 字段实现上传下载需要完成以下几个步骤:上传大对象、将大对象存储在数据库中、使用专门的函数来完成 BLOB 的使用。在 Struts 项目中,我们可以使用 Struts 的文件上传组件来上传大对象...

    批量导出ORACLE数据库BLOB字段生成图片

    用户只需提供必要的连接信息和表字段名,就能自动批量导出BLOB字段中的图片。 总之,批量导出Oracle数据库中的BLOB字段生成图片涉及到了数据库连接、SQL查询、BLOB数据处理和文件I/O等多个技术环节。掌握这些知识点...

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

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

    文件上传至oracle blob字段的java实现

    指定文件夹下的所有文件上传至oracle的blob字段,java实现

    Hibernate操作Oarcle中Clob、Blob字段小结

    总之,理解并熟练掌握Hibernate对Oracle中的Clob和Blob字段的操作,是Java开发人员在处理大数据时必不可少的技能,这有助于确保数据的正确存储和高效访问。通过阅读和分析提供的源码,我们可以更深入地理解其底层...

    java读取大字段blob类型

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

    Oracle blob字段上传下载

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

    spring+mybatis下BLOB字段的图片存取代码

    spring+mybatis下BLOB字段的图片存取代码,仅整理了Controller层的代码,service和dao的代码很简单,所以没有整理

    java中Blob转String

    分享在JAVA中Blob转换成String实例

    java file upload BLOB

    - 然后,将图片文件的内容读取到内存中,并通过 JDBC 的 `setBlob` 方法保存到数据库的 BLOB 字段中。 - 图片的上传可以通过 HTML 表单结合 Java Servlet 或其他框架如 Spring MVC 来实现。 - **图片显示**: - ...

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

    * 使用JSP技术可以读取BLOB字段中的坐标点,然后将其传递到JAVA类中显示图形。 知识点4:图形的显示 * 在图形的正中还显示了编号,充分展示了JSP结合JAVA应用的优势。 * 使用JAVA类可以将坐标点转换为图形,然后将...

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

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

    BLOB字段处理

    本文将深入探讨如何使用Java中的PreparedStatement和ResultSet对象来有效地处理BLOB字段。 ### 插入BLOB字段 在Java中,使用PreparedStatement对象可以安全地向数据库中插入数据,特别是当涉及到BLOB字段时,这一...

Global site tag (gtag.js) - Google Analytics