`

oracle Blob对象的读写 (插入Blob)

阅读更多

 CREATE SEQUENCE  "ZW"."STUDENT_SEQ"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 81 CACHE 20 NOORDER  NOCYCLE ;

 

public class InsertImage extends HttpServlet {            //插入blob,先获取id  (id自增有个触发器给删除了)

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

 protected void doPost(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  
  // String fileName="D:\\My Documents\\My Pictures\\colorjb33.bmp";
  int id=this.getId();                                //同一个id
  String name=req.getParameter("name");
  String fileName=req.getParameter("fileName");
   Blob b=null;
   int i=0;
   OracleConnection oc=new OracleConnection();
   Connection conn=oc.getConnection();
   try {
    String sql="insert into student(id,name,image) values(?,?,empty_blob())";
    
     PreparedStatement ps=conn.prepareStatement(sql);
     ps.setInt(1, id);
     ps.setString(2, name);
     i= ps.executeUpdate();
     ps.close();
     System.out.println("insert empty_blob");
   String sl="select image from student where id=? for update";
   PreparedStatement ps2=conn.prepareStatement(sl);
   ps2.setInt(1, id);
   ResultSet rs2=ps2.executeQuery();
   
   byte[] buf=new byte[1024];
   if(rs2.next()){
     b=rs2.getBlob("image");
     System.out.println(b);
     BufferedOutputStream bos=new BufferedOutputStream(b.setBinaryStream(0));
     BufferedInputStream bis=new BufferedInputStream(new FileInputStream(fileName));
     while(bis.read(buf)!=-1){
      bos.write(buf);
     }
     bos.close();
     bis.close();
   }
   rs2.close();
   ps2.close();
   conn.close();
   } catch (Exception e) {
    e.printStackTrace();
   }
  System.out.println("success.............");
 }
 private int getId(){
  int id=0;
  OracleConnection oc=new OracleConnection();
  Connection conn=oc.getConnection();
  String sql="select student_seq.nextval from dual";
  try {
   PreparedStatement ps=conn.prepareStatement(sql);
   
  ResultSet rs=ps.executeQuery();
  if(rs.next()){
   id=rs.getInt(1);
  }
   ps.close();
   conn.close();
  } catch (SQLException e) {
   e.printStackTrace();
  }
  return id;
 }
}

分享到:
评论

相关推荐

    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 ...

    基于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)时,有时需要专门的工具来进行高效且安全的数据导出。这些字段通常存储大量的文本或二进制数据,比如长篇文档...

    ado.net读写Oracle大对象

    以下是一个简单的示例,演示如何使用ADO.NET在Oracle数据库中读写Blob: ```csharp using Oracle.ManagedDataAccess.Client; public void WriteBlob(string connectionString, string blobColumnName, byte[] data...

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

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

    JDBC+Hibernate将Blob数据写入Oracle

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

    使用hibernate对oracle读取blob

    本文将详细介绍如何使用Hibernate和JDBC读取和存储Oracle数据库中的Blob对象。 ### 1. Hibernate Blob操作 在Hibernate中,Blob对象通常与Java的`java.sql.Blob`接口相对应。在实体类中,你可以定义一个Blob类型的...

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

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

    oracle中的Blob和Clob区别

    ### Oracle中的BLOB和CLOB的区别 在Oracle数据库中,`BLOB`(Binary Large Object)和`CLOB`(Character Large Object)是用于存储大量数据的两种特殊数据类型。这两种类型都属于`LOB`(Large Object)类别,主要...

    BLOB和CLOB的区别以及在ORALCE中的插入和查询操作

    - BLOB插入:可以使用DBMS_LOB包中的函数,如DBMS_LOB.CREATETEMPORARY和DBMS_LOB.WRITE来创建并填充BLOB对象。然后,将这个对象作为参数传递给INSERT语句。 ```sql DECLARE blob_var BLOB; BEGIN DBMS_LOB....

Global site tag (gtag.js) - Google Analytics