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

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

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

    Believe it,do it!

    Ideal is the beacon. Without ideal, there is no secure direction; without direction ,there is no life.
    理想是指路明燈。沒有理想,就沒有堅定的方向;沒有方向,就沒有生活。
    CTRL+T eclipse
    posts - 35, comments - 3, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    將圖片文件寫入數據庫BLOB

    Posted on 2009-05-18 13:51 三羽 閱讀(3748) 評論(0)  編輯  收藏 所屬分類: JAVA資料
      import   java.sql.*;  
      import   oracle.sql.*;  
      import   java.io.*;  
      import   oracle.jdbc.driver.OracleResultSet;  
       
      public   class   WriteBlob   {  
       
      public   static   void   main(String[]   args)   {  
       
      try   {  
      //   連接數據庫  
      //Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  
      //Connection   conn   =   DriverManager.getConnection("jdbc:odbc:Yzl","pda","pwpda");          
       
      Class.forName("oracle.jdbc.driver.OracleDriver");                                                                
      Connection   conn   =   DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:SISSI","pda","pwpda");  
      conn.setAutoCommit(false);  
       
      //   獲取源照片數據  
       
      BLOB     blob   =   null;  
      Blob     blob2   =   null;  
      String   fileName   =   "c:\\01.jpg";  
      File   f   =   new   File(fileName);  
       
       
      //   先插入一條記錄,用于后面獲得一個Blob對象  
      PreparedStatement   pstmt   =   conn.prepareStatement("insert   into   javatest(PICNAME,content)   values(?,empty_blob())");  
      pstmt.setString(1,"Yzl");    
      pstmt.executeUpdate();  
      pstmt.close();  
       
      //   獲得Blob對象(由于Blob是接口,不能實例化,所以只好用這種曲折方法獲得)  
      pstmt   =   conn.prepareStatement("SELECT   content   FROM   JAVATEST   WHERE   trim(PICNAME)=?   ");  
      pstmt.setString(1,"Yzl");  
      ResultSet   rset   =   pstmt.executeQuery();  
       
      if   (rset.next())   blob   =   (BLOB)rset.getBlob(1);  
      pstmt.close();  
       
      if   (blob   ==   null){  
      System.out.println("blob   is   null");  
       
      conn.close();  
      return   ;  
      }  
       
      //   填充Blob值,用于提交到數據庫  
      FileInputStream   fin   =   new   FileInputStream(f);  
      System.out.println("file   size   =   "   +   fin.available());  
      OutputStream   out   =   blob.getBinaryOutputStream();  
      byte[]   data   =   new   byte[(int)fin.available()];  
       
              //   獲取  
              fin.read(data);  
              out.write(data);  
               
              //   關閉資源          
              fin.close();  
              out.close();  
               
              //   插入數據庫  
              pstmt   =   conn.prepareStatement("update   javatest   set   content=?   where   PICNAME=?");  
              pstmt.setBlob(1,blob);  
              pstmt.setString(2,"Yzl");  
              pstmt.executeUpdate();  
              pstmt.close();  
               
              //   提交  
              conn.commit();  
               
              //   獲取數據庫中的照片          
      pstmt   =   conn.prepareStatement("SELECT   content   FROM   JAVATEST   WHERE   trim(PICNAME)=?   ");  
      pstmt.setString(1,"Yzl");  
      rset   =   pstmt.executeQuery();  
       
      if   (rset.next())   blob   =   (BLOB)((OracleResultSet)rset).getBLOB(1);  
      pstmt.close();  
       
      if   (blob   ==   null){  
      System.out.println("blob2   is   null");  
       
      conn.close();  
      return   ;  
      }  
       
      //   輸出到磁盤  
      //   獲得  
      FileOutputStream   fout   =   new   FileOutputStream(new   File("c:\\02.jpg"));  
      InputStream   in   =   blob.asciiStreamValue();  
      data   =   new   byte[(int)in.available()];  
       
      System.out.println("數據庫中照片的字節數:"+in.available());                       //   此句總是為   0   不知道為什么,有誰知道嗎?  
       
              //   輸出  
              in.read(data);  
              fout.write(data);  
               
              //   關閉資源          
              fin.close();  
              out.close();  
              conn.close();  
               
              //   打開  
              //Process   pro   =   Runtime.getRuntime().exec("cmd   /c   start   c:\\02.jpg");    
               
               
              }   catch   (SQLException   e)   {  
               
              System.err.println(e.getMessage());  
               
              e.printStackTrace();  
               
              }   catch   (IOException   e)   {  
               
              System.err.println(e.getMessage());  
               
              }   catch(ClassNotFoundException   e){  
               
              e.printStackTrace();  
              }  
              }  
       
      }
    主站蜘蛛池模板: 无码一区二区三区亚洲人妻| 免费无码又爽又刺激网站直播| 免费一级毛片免费播放| 日日躁狠狠躁狠狠爱免费视频| 日本亚洲欧洲免费天堂午夜看片女人员 | 亚洲精品免费在线视频| 亚洲性无码一区二区三区| 亚洲精品A在线观看| 16女性下面扒开无遮挡免费| 日本亚洲中午字幕乱码| 亚洲av女电影网| 国产精品免费看久久久无码| 久久伊人免费视频| 亚洲av无码片vr一区二区三区| 亚洲色成人WWW永久网站| 最新猫咪www免费人成| 一区二区三区免费高清视频| 亚洲第一永久在线观看| 亚洲精品无码AV中文字幕电影网站| 57pao一国产成视频永久免费| 免费大片黄在线观看| 亚洲H在线播放在线观看H| 精品国产香蕉伊思人在线在线亚洲一区二区| 1000部啪啪毛片免费看| 亚洲黄片手机免费观看| 亚洲乱妇老熟女爽到高潮的片 | 亚洲情XO亚洲色XO无码| 国产免费av一区二区三区| 日本免费网站视频www区| 久久er国产精品免费观看8| 亚洲AV无码一区二区大桥未久| 亚洲黄色片免费看| 亚洲午夜久久久久久噜噜噜| 免费黄网在线观看| 国产精品69白浆在线观看免费| 成人电影在线免费观看| 一区二区三区AV高清免费波多| 亚洲精品亚洲人成在线 | 久久免费线看线看| 特黄特色大片免费| 亚洲成AV人片高潮喷水|