`

oracle Blob对象的读写

阅读更多

select student_seq.nextval from dual // 每执行一次都不一样(不管数据库插没插入数据)

 

public class OracleConnection {
 String url="jdbc:oracle:thin:@localhost:1521:orcl";
 String user="zw";
 String password="pass";
 
 public Connection getConnection(){
  Connection conn=null;
  try {
   Driver.class.forName("oracle.jdbc.driver.OracleDriver");
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  }
  try {
   conn=DriverManager.getConnection(url,user,password);
  } catch (SQLException e) {
   e.printStackTrace();
  }
  return conn;
 }

}

 

public class ShowImageServlet extends HttpServlet  {//读Blob

 protected void doGet(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  doPost(req,resp);
 }

 protected void doPost(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  OracleConnection oc=new OracleConnection();
  Connection conn=oc.getConnection();
  OutputStream out=resp.getOutputStream();
  String sl="select image from student where id=16 ";// image 类型Blob
  PreparedStatement ps2;
  try {
   ps2 = conn.prepareStatement(sl);
   ResultSet rs2=ps2.executeQuery();
   Blob b=null;
   byte[] buf=new byte[1024];
   BufferedOutputStream bos=null;
   BufferedInputStream bis=null;
   if(rs2.next()){
     b=rs2.getBlob("image");
     bis=new BufferedInputStream(b.getBinaryStream());
    while(bis.read(buf)!=-1){
     out.write(buf);
     out.flush();
    }
    bis.close();
   }
   rs2.close();
   ps2.close();
   conn.close();
   out.close();
  } catch (SQLException e) {
   e.printStackTrace();
  }
 }
}

 

------------------------------------------------------------------------

public int updateBlob(){        //插入Blob
  int i=-1;
  Blob b=null;
  OracleConnection oc=new OracleConnection();
  Connection conn=oc.getConnection();
  try {
  String sl="select image from student where id=47 for update";
  PreparedStatement ps2=conn.prepareStatement(sl);
  ResultSet rs2=ps2.executeQuery();
  //System.out.println(rs2.next());
  
  byte[] buf=new byte[1024];
  if(rs2.next()){
    b=rs2.getBlob("image");  //数据库初始为empty_blob();
    System.out.println(b);
    BufferedOutputStream bos=new BufferedOutputStream(b.setBinaryStream(0));
    BufferedInputStream bis=new BufferedInputStream(new FileInputStream(fileName));//blob对象
   
    while(bis.read(buf)!=-1){
     bos.write(buf);                     //blob对象保存到数据库
    }
    bos.close();
    bis.close();
  }
  rs2.close();
  ps2.close();
  
   conn.close();
  } catch (Exception e) {
   e.printStackTrace();
  }
  return i;
 }

 

------------------------------------------------------------------------------------

Clob对象的插入:(对照上面的需要更改的地方:)

     BufferedWriter bos=new BufferedWriter(b.setCharacterStream(0));
     BufferedReader bis=new BufferedReader(new FileReader(fileName));

 

     char[] buf=new char[1024];

     String sql="insert into student(id,name,comm) values(?,?,empty_clob())";

     Clob b=null;

 http://hi.baidu.com/%C1%F5%D0%A1%BB%A2%C1%F5/blog/item/28ddd2c75cc93fd6d0006076.html

分享到:
评论

相关推荐

    oracle blob 字段 读写 delphi

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

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

    本篇文章将深入探讨如何使用C#语言访问Oracle数据库,并重点讲解处理Blob(Binary Large Object)字段的读写操作。 首先,让我们理解C#访问Oracle数据库的基本原理。Oracle数据库提供了一个名为ODP.NET(Oracle ...

    oracle blob的读写(plsql)

    oracle中用来存储大数据的BLOB(图片,文本,文件等)的 读写与复制方法

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

    BLOB是一种可以存储大量二进制数据的对象,分为四种子类型:BLOB、CLOB、NCLOB和BFILE。在Oracle中,BLOB用于存储二进制数据,如照片;而在MySQL中,BLOB也有类似的分类,包括TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB...

    Oracle blob字段上传下载

    在数据库系统中,二进制大对象(Binary Large Object,简称BLOB)是一种用于存储大量二进制数据的数据类型,例如图像、音频或视频文件等。Oracle数据库支持Blob类型,允许用户在数据库中直接存储和管理这些大型文件。...

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

    Oracle数据库在存储大对象(BLOB)数据时,提供了高效且灵活的方式,使得二进制数据如图片、文档等能够安全地保存在数据库中。批量导出Oracle数据库中的BLOB字段生成图片,是一项常见的需求,尤其对于那些需要将...

    oracle,weblogic读写blob

    本篇文章将深入探讨如何在 Oracle 数据库与基于 WebLogic 的应用中读写 BLOB 数据。 首先,Oracle 数据库提供了多种操作 BLOB 值的方法。在 SQL 查询中,你可以使用 `SELECT BLOB_COLUMN FROM TABLE` 来读取 BLOB ...

    ado.net读写Oracle大对象

    总之,通过ADO.NET和OracleClient,开发者可以轻松地在C#应用程序中处理Oracle数据库中的Blob和Clob大对象,实现数据的高效读写。注意在使用过程中确保连接字符串的安全性,避免SQL注入攻击,并合理管理数据库资源,...

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

    "基于JSP访问ORACLE数据库BLOB字段并显示图形的解决方案" 本文介绍了一种基于JSP访问ORACLE数据库BLOB字段并显示图形的解决方案。该方案使用JSP技术读取ORACLE数据库中的BLOB字段存储的坐标点,然后将坐标传递到...

    Oracle导出Clob,Blob工具

    Oracle数据库在处理大对象(LOB)类型,如Clob(Character Large Object)和Blob(Binary Large Object)时,有时需要专门的工具来进行高效且安全的数据导出。这些字段通常存储大量的文本或二进制数据,比如长篇文档...

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

    它可能包含具体的数据库连接配置、BLOB读写方法的实现等,通过分析这个文件的源码,我们可以更深入地了解Java与Oracle在处理大字段时的具体细节和最佳实践。 总的来说,Java与Oracle在处理大字段时的交互涉及到...

    使用hibernate对oracle读取blob

    Hibernate作为一款流行的ORM(对象关系映射)框架,提供了与Oracle数据库交互的简便方式,包括处理Blob数据。本文将详细介绍如何使用Hibernate和JDBC读取和存储Oracle数据库中的Blob对象。 ### 1. Hibernate Blob...

    JDBC+Hibernate将Blob数据写入Oracle

    Hibernate提供了`BlobType`等类型映射器来简化BLOB字段的读写操作。开发者可以通过实体类中的字段直接与BLOB类型的数据库字段关联,Hibernate会在后台自动处理BLOB的读取和写入过程。 总之,无论是使用JDBC还是...

    Oracle数据库大对象数据存取的两种实现方法及时间性能比较.pdf

    部分内容中,作者首先介绍了Oracle中的大对象数据分类,包括字符类型(CLOB和NCLOB)和二进制类型(BLOB),以及BFILE类型,后者存储在操作系统文件中。接着,讨论了两种存取方式:数据存储在内部表空间和指向操作...

    深入浅析mybatis oracle BLOB类型字段保存与读取

    在Oracle数据库中,BLOB(Binary Large Object)和CLOB(Character Large Object)是两种用于存储大量数据的特殊字段类型。本篇文章将深入剖析如何使用MyBatis框架在Oracle数据库中对BLOB类型字段进行保存和读取。 ...

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

    在 SQL Server 中,Image 类型用于存储二进制大对象(BLOB),如图像、音频、视频等。Image 类型可以存储大量数据,但由于其存储方式和检索机制的限制,Image 类型数据的读写效率较低。 CLOB 字段在 Oracle 中的...

Global site tag (gtag.js) - Google Analytics