<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    langhuaname

       :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      5 隨筆 :: 0 文章 :: 0 評論 :: 0 Trackbacks
    package net.qysoft;

    import java.io.File;
    import java.io.FileOutputStream;
    import java.sql.Blob;
    import java.sql.Connection;
    import java.sql.SQLException;


    /**
     * java 中對Blob數(shù)據(jù)的操作數(shù)據(jù)庫的創(chuàng)建代碼:

    * (1)db2 => create table blobTest ( id int not null generated always as identity, image blob  )

     *添加用戶java,密碼java

     * (2) db2=>! net
     * user java java /add java分配權(quán)限

     *(3)db2 => grant select,insert,update,delete on
     * table weihuachao.blobTest to user java
     *
     *
     * @author weihuachao
     *  以下代碼在microsoft 2003 系統(tǒng),DB2 9.0中測試成功.
     *
     */

    //類的定義開始------------------------------------------------------------

    public class Test {

     public static void main(String[] args) throws Exception {

      Test test = new Test();
      Connection conn = test.createConnection();


      // Blob對象的插入的方法:
      try {


       // 創(chuàng)建插入語句.
       java.sql.PreparedStatement preparedStatement = conn
         .prepareStatement("insert into weihuachao.blobTest(image)values(?)");


       //創(chuàng)建文件對象:
       
       File file=new File("c:/a.jpg");


       // 創(chuàng)建流對象:
       java.io.BufferedInputStream imageInput = new java.io.BufferedInputStream(
         new java.io.FileInputStream(file));


       //參數(shù)賦值:
       preparedStatement.setBinaryStream(1, imageInput,(int) file.length());


       //執(zhí)行語句
       preparedStatement.executeUpdate();
       
       
       
       //------------------------------------------------------------------
       //Blob的讀取工作:


       java.sql.Statement st=conn.createStatement();


       java.sql.ResultSet rs=st.executeQuery("select image from weihuachao.blobTest");


       while(rs.next())
       {
        //讀取Blob對象
        Blob blob= (Blob) rs.getBlob(1);


        //Blob對象轉(zhuǎn)化為InputStream流
        java.io.InputStream inputStream =blob.getBinaryStream();


        //要寫入的文件
        File fileOutput = new File("c:/backa.jpg");


        //文件的寫入流的定義
        FileOutputStream fo = new FileOutputStream(fileOutput);


        int c;
        //讀取流并寫入到文件中
        while ((c = inputStream.read()) != -1)
        fo.write(c);


        //流的關(guān)閉:
        fo.close();

       }

      } catch (SQLException e) {


       // TODO 自動生成 catch 塊
       e.printStackTrace();
      }catch(java.io.FileNotFoundException ex)
      
      {
       
       ex.printStackTrace();
      }catch(java.io.IOException ex)
      {
       
       ex.printStackTrace();
      }
      finally
      {
       try {
        conn.close();
       } catch (SQLException e) {


        // TODO 自動生成 catch 塊
        e.printStackTrace();
       }
       
      }

     }

     /**
      * 定義數(shù)據(jù)庫連接的方法
      *
      * @return
      */
     private Connection createConnection() {
      Connection conn = null;
      try {


       Class.forName("COM.ibm.db2.jdbc.app.DB2Driver");

       conn = java.sql.DriverManager.getConnection("jdbc:db2:sample",
         "java", "java");


      } catch (SQLException ex1) {
       ex1.printStackTrace();


      } catch (ClassNotFoundException ex) {
       ex.printStackTrace();
      }
      return conn;
     }

    }//結(jié)束.

     

    總結(jié): JAVA 對DB2中的BLOB對象的操作,主要是使用流的技術(shù)實現(xiàn).對BLOB的實現(xiàn)主要步驟有:

    (1)定義要寫入的文件  File file=new File("c:/a.jpg");

    (2)定義文件的寫入流

      java.io.BufferedInputStream imageInput = new java.io.BufferedInputStream(
         new java.io.FileInputStream(file));

    (3)使用函數(shù)寫入:

       preparedStatement.setBinaryStream(1, imageInput,(int) file.length());

    (4)執(zhí)行SQL語句:

    對BLOB的讀取采取的步驟有:

    (1)讀取Blob的對象:  Blob blob= (Blob) rs.getBlob(1);

    (2)把Blob的對象轉(zhuǎn)化為流:

       java.io.InputStream inputStream =blob.getBinaryStream();
    (3)定義要寫入的文件
        File fileOutput = new File("c:/backa.jpg");
    (4)文件的寫入流的定義
        FileOutputStream fo = new FileOutputStream(fileOutput);

    (5)寫入文件(流的寫入技術(shù),就不多講了)
        int c;
        while ((c = inputStream.read()) != -1)

        {
        fo.write(c);

       }
        //END

    posted on 2009-07-25 00:50 WIN 閱讀(1914) 評論(0)  編輯  收藏
    主站蜘蛛池模板: 国产精品亚洲片在线va| 国产精品亚洲午夜一区二区三区| xxxxx做受大片在线观看免费| 亚洲高清无码在线观看| 国产亚洲精品91| 亚洲精品无码永久在线观看| 精品熟女少妇aⅴ免费久久| 国产亚洲成av片在线观看| 香港a毛片免费观看| 亚洲国产成人91精品| 日本大片在线看黄a∨免费| 日本一区二区三区在线视频观看免费 | 国产片免费福利片永久| 国产亚洲美女精品久久久久| 免费看大美女大黄大色| 亚洲国产成人91精品| 日韩人妻无码精品久久免费一| 亚洲风情亚Aⅴ在线发布| 亚洲国产日韩一区高清在线| 热久久精品免费视频| 日日麻批免费40分钟无码| 亚洲AV日韩AV无码污污网站| 亚洲午夜精品一区二区| 亚洲?V无码成人精品区日韩| 国产一卡二卡3卡四卡免费| 国产一级婬片A视频免费观看| 亚洲色成人网站WWW永久四虎 | 国产99视频精品免费视频76| 亚洲理论片在线观看| 在线精品亚洲一区二区三区| 在线天堂免费观看.WWW| 国产精品免费大片| 一级A毛片免费观看久久精品| 亚洲综合一区二区三区四区五区| 亚洲爆乳无码专区| 亚洲男人天堂2020| 免费a级毛片永久免费| 最近中文字幕mv手机免费高清| 亚洲免费视频在线观看| 亚洲日产无码中文字幕| 免费国产污网站在线观看15|