日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Oracle大字段純jdbc存儲(chǔ)方法

目錄:

創(chuàng)新互聯(lián)2013年至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元瑞麗做網(wǎng)站,已為上家服務(wù),為瑞麗各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575

1、通用大字段jdbc存儲(chǔ)方法

2、oracle Clob存儲(chǔ)方法

3、oracle Blob存儲(chǔ)方法

內(nèi)容:

也不知道為什么,也許憑著自己是數(shù)據(jù)庫(kù)廠商老大的地位,只有oracle對(duì)大字段的處理不符合jdbc的標(biāo)準(zhǔn),因此才出現(xiàn)如下對(duì)oracle大字段特殊處理的方法,當(dāng)然hibernate或ibatis是自己封裝了如下的特殊處理。

1、通用大字段jdbc存儲(chǔ)方法

像常用的數(shù)據(jù)庫(kù),如DB2、mysql、sqlserver、sybase等都是支持標(biāo)準(zhǔn)的大字段處理,這樣才使得我們的程序能夠?qū)懙暮芰鲿澈芡ㄓ?,?dāng)然這也是標(biāo)準(zhǔn)存在的意義。接下來(lái)按照標(biāo)準(zhǔn)的方式師范一下使用方法。

首先,分別構(gòu)造兩個(gè)類,實(shí)現(xiàn)java.sql包下的Blob、Clob接口,完成接口提供的方法,并為其增加相應(yīng)的構(gòu)造函數(shù),如BlobImpl:

Java代碼

 
 
 
  1. public class BlobImpl implements Blob {     
  2.     
  3.     private byte[] binaryData = null;     
  4.     
  5.     public BlobImpl(byte[] data) {     
  6.         setBinaryData(data);     
  7.     }     
  8.     
  9. ...     

如ClobImpl:

Java代碼

 
 
 
  1. public class ClobImpl implements Clob {     
  2.          
  3.     public ClobImpl(String data){     
  4.         this.charData = data;     
  5.     }     
  6.     
  7. ...     
  8. }  

然后,通過(guò)byte數(shù)組或String構(gòu)造Blob、Clob實(shí)例:

Java代碼

 
 
 
  1. Blob blob = new BlobImpl(data);     
  2.     
  3. Clob clob = new ClobImpl(data);  

最后,通過(guò)PreparedStatement實(shí)例的setBlob方法將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中。

Java代碼

 
 
 
  1. pst.setBlob(fieldIndex, new BlobImpl((byte[]) value));  
  2.  
  3. pst.setClob(fieldIndex, new ClobImpl(((String) value)));  

2、oracle Clob存儲(chǔ)方法

oracle構(gòu)造Clob實(shí)例時(shí),需要持有Connection,然后利用oracle Clob類提供的靜態(tài)方法構(gòu)造出空的clob實(shí)例,最后將數(shù)據(jù)寫入該clob實(shí)例中,并通過(guò)上述方法存儲(chǔ)到數(shù)據(jù)庫(kù)中。構(gòu)造示例代碼如下:

Java代碼

 
 
 
  1. public CLOB getCLOB(Connection conn, String data) throws Exception {     
  2.     CLOB clob = null;     
  3.     Writer writer = null;     
  4.     try {     
  5.         clob = CLOB.createTemporary(conn, false,   CLOB.DURATION_SESSION);     
  6.         writer = clob.getCharacterOutputStream();     
  7.         writer.write((data).toCharArray());     
  8.         writer.flush();     
  9.     } catch (Exception e) {     
  10.         throw e;     
  11.     } finally {     
  12.         if (writer != null) {     
  13.     try {     
  14.          writer.close();     
  15.               } catch (IOException e) {     
  16.                    Logger.log(Logger.WARNING, e.getMessage(), e);     
  17.                    e.printStackTrace();     
  18.               }     
  19.         }     
  20.      }     
  21.      return clob;     
  22. }    

3、oracle Blob存儲(chǔ)方法

oracle構(gòu)造Blob實(shí)例時(shí),同樣需要持有Connection,然后利用oracle Blob類提供的靜態(tài)方法構(gòu)造出空的blob實(shí)例,最后將數(shù)據(jù)寫入該blob實(shí)例中,并通將其存儲(chǔ)到數(shù)據(jù)庫(kù)中。構(gòu)造示例代碼如下:

Java代碼

 
 
 
  1. public BLOB getBLOB(Connection conn, byte[] data) throws Exception {     
  2.     BLOB blob = null;     
  3.     OutputStream output = null;     
  4.     try {     
  5.         blob = BLOB.createTemporary(conn, false, BLOB.DURATION_SESSION);     
  6.         output = blob.getBinaryOutputStream();     
  7.         output.write(data, 0, data.length);     
  8.     } catch (Exception e) {     
  9.         throw e;     
  10.     } finally {     
  11.         if (output != null) {     
  12.     try {     
  13.         output.close();     
  14.     } catch (IOException e) {     
  15.                   Logger.log(Logger.WARNING, e.getMessage(), e);     
  16.         e.printStackTrace();     
  17.     }     
  18.          }     
  19.     }     
  20.     return blob;     
  21. }    

【編輯推薦】

  1. 幾個(gè)主流的Java連接池
  2. Java的JDBC數(shù)據(jù)庫(kù)連接池實(shí)現(xiàn)方法
  3. Tomcat5+MySQL JDBC連接池配置
  4. 基于JMX監(jiān)控下的JBoss數(shù)據(jù)庫(kù)連接池
  5. JBoss配置mysql數(shù)據(jù)庫(kù)連接池

當(dāng)前題目:Oracle大字段純jdbc存儲(chǔ)方法
當(dāng)前網(wǎng)址:http://www.dlmjj.cn/article/djoiocs.html