打印本文 打印本文 关闭窗口 关闭窗口
Oracle中Blob字段的写入处理(一)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1759  更新时间:2009/4/22 22:10:35  文章录入:mintao  责任编辑:mintao

OracleBlob字段的写入处理(一)

韦  伟

 

Oracle中的Bloc字段的处理较其他字段来说,会有一些特殊性。现就对在java和pl/sql下,Blob字段的处理和大家做一些交流。

下面,简单介绍一下Blob在以下两种环境中的写入处理,

u      java环境

u      PL/SQL环境

 

 

一、java环境

1、 Blob的插入操作

1)       插入一空的Blob。

2)       更新该纪录的Blob。

 

例子:

比如表结构如下:

       CREATE TABLE Student (

              Name VARCHAR2(30),

              Age   Int,

              Picture    Blob);

i.插入一空的Blob。

String command=”INSERT INTO Student VALUES(?,?,?)”;

Connection conn=null;

PreparedStatement ps=null;

try

{

   conn=….;

ps=conn. prepareStatement(command);

ps.setString(1,”ZhangSan”);

ps.setInt(2,20);

ps.setBlob(3, BLOB.empty_lob());

ps.executeUpdate();

ii.更新该纪录

 

byte[] data=null;

Connection conn=null;

Try

{

  data=…  //图片信息

   conn=..

   ByteArrayInputStream in=new ByteArrayInputStream(data);

  updateBlob(in, conn, “Student”,”Picture”,”Name”,”zhangsan”);

   …

   …

 

 

public static void updateBlob(  InputStream instream,

                          Connection conn,

String table,

                        String blobColumn,

        String keyColumn,

                          String keyValue)   

throws SQLException, IOException

    {

      Statement stmt = null;

      OracleResultSet rs = null;

      BLOB blob = null;

 

      boolean oldAutoCommit = conn.getAutoCommit();

      StringBuffer sqlBuffer = new StringBuffer();

 

      try {

          conn.setAutoCommit(false);

 

          sqlBuffer.append("select ");

          sqlBuffer.append(blobColumn);

          sqlBuffer.append(" from ");

          sqlBuffer.append(table);

          sqlBuffer.append(" where ");

          sqlBuffer.append(keyColumn);

          sqlBuffer.append("=''''");

[1] [2]  下一页

打印本文 打印本文 关闭窗口 关闭窗口