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

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

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

    JDBC實現oracle blob 出庫入庫

    1,首先建一個足夠簡單的表imageTable
          id         varchar(20)
          image   blob
    2,blob入庫
          拷貝Sunset.jpg圖片在C盤根目錄下     
     1      DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); 
     2      Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:beyondduke","duke","duke"); 
     3      conn.setAutoCommit(false); 
     4      BLOB blob = null
     5      PreparedStatement pstmt = conn.prepareStatement("insert into imageTable(id,image) values(?,empty_blob())"); 
     6      pstmt.setString(1,"10001"); 
     7      pstmt.executeUpdate(); 
     8      pstmt.close(); 
     9      pstmt = conn.prepareStatement("select content from imageTable where id= ? for update"); 
    10      pstmt.setString(1,"10001"); 
    11      ResultSet rs = pstmt.executeQuery(); 
    12     if (rs.next()) blob = (BLOB) rs.getBlob(1); 
    13      String fileName = "c://Sunset.jpg"
    14      File f = new File(fileName); 
    15      FileInputStream fin = new FileInputStream(f); 
    16      System.out.println("file size = " + fin.available()); 
    17      pstmt = conn.prepareStatement("update imageTable set image=? where id=?"); 
    18      OutputStream out = blob.getBinaryOutputStream(); 
    19       byte[] data = new byte[(int)fin.available()]; 
    20      fin.read(data); 
    21      out.write(data); 
    22      out.close(); 
    23      fin.close(); 
    24
    25      pstmt.setBlob(1,blob); 
    26      pstmt.setString(2,"fankai"); 
    27
    28      pstmt.executeUpdate(); 
    29      pstmt.close(); 
    30
    31      conn.commit(); 
    32      conn.close(); 
    瀏覽數據庫的數據,發現image項中數據大小與圖片大小一致,說明入庫了!
     3,blob出庫
     1   DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
     2   Connection conn = DriverManager.getConnection(            "jdbc:oracle:thin:@localhost:1521:beyondduke""duke","duke");     
              conn.setAutoCommit(
    false);
     3    Statement stmt = conn.createStatement();
     4/* 查詢BLOB對象 */
     5    ResultSet rs = stmt.executeQuery("SELECT content FROM javatest WHERE id='1001'");
     6while (rs.next()) {
     7/* 取出此BLOB對象 */    
     8    oracle.sql.BLOB blob = (oracle.sql.BLOB) rs.getBlob("image");
     9 BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("d://Sunset.jpg"));            
               BufferedInputStream in 
    = new BufferedInputStream(blob    .getBinaryStream());        
    10    int c;
    11while ((c = in.read()) != -1{ out.write(c);        
    12   }

    13   in.close();
    14   out.close();
    15   rs.close();
    16   stmt.close();
    17   conn.close();
    18
    檢查D盤根目錄,會發現Sunset.jpg文件,跟C盤下是一樣的,說明入庫出庫成功!

    posted on 2006-02-14 09:23 beyondduke 閱讀(2660) 評論(0)  編輯  收藏 所屬分類: 編程隨筆

    <2006年2月>
    2930311234
    567891011
    12131415161718
    19202122232425
    2627281234
    567891011

    導航

    統計

    公告


    MSN聯系

    常用鏈接

    留言簿(2)

    隨筆分類

    隨筆檔案

    我的連接

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 99ee6热久久免费精品6| 无遮挡a级毛片免费看| 免费黄色电影在线观看| 中文字幕在线亚洲精品 | 亚洲最大在线观看| 在免费jizzjizz在线播| 亚洲国产情侣一区二区三区| 777爽死你无码免费看一二区 | 久久久精品国产亚洲成人满18免费网站| 羞羞的视频在线免费观看| 国产免费看插插插视频| 日韩在线一区二区三区免费视频 | 亚洲人成伊人成综合网久久久| jizz在线免费播放| 国产亚洲综合网曝门系列| 国内精品免费视频精选在线观看| 久久夜色精品国产亚洲AV动态图 | 最近中文字幕无免费| 久久精品国产亚洲AV忘忧草18 | 在线91精品亚洲网站精品成人| 无码欧精品亚洲日韩一区夜夜嗨 | 久久一区二区三区免费播放| 久久久国产精品亚洲一区| 18禁免费无码无遮挡不卡网站 | 无人视频在线观看免费播放影院| 亚洲精品亚洲人成在线观看下载| 青柠影视在线观看免费高清| 亚洲综合综合在线| 在线jyzzjyzz免费视频| 又黄又大的激情视频在线观看免费视频社区在线 | 亚洲综合一区二区三区四区五区| 又爽又黄无遮挡高清免费视频 | 免费观看美女用震蛋喷水的视频| 亚洲精品又粗又大又爽A片| 亚洲毛片av日韩av无码| 免费无码毛片一区二区APP| 亚洲欧美乱色情图片| 久久精品国产亚洲沈樵| 免费专区丝袜脚调教视频| 激情婷婷成人亚洲综合| 亚洲AV日韩AV永久无码绿巨人|