成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Oracle大字段純jdbc存儲方法

開發(fā) 后端
也不知道為什么,也許憑著自己是數據庫廠商老大的地位,只有oracle對大字段的處理不符合jdbc的標準,因此才出現如下對oracle大字段特殊處理的方法,當然hibernate或ibatis是自己封裝了如下的特殊處理。

目錄:

1、通用大字段jdbc存儲方法

2、oracle Clob存儲方法

3、oracle Blob存儲方法

內容:

也不知道為什么,也許憑著自己是數據庫廠商老大的地位,只有oracle對大字段的處理不符合jdbc的標準,因此才出現如下對oracle大字段特殊處理的方法,當然hibernate或ibatis是自己封裝了如下的特殊處理。

1、通用大字段jdbc存儲方法

像常用的數據庫,如DB2、mysql、sqlserver、sybase等都是支持標準的大字段處理,這樣才使得我們的程序能夠寫的很流暢很通用,當然這也是標準存在的意義。接下來按照標準的方式師范一下使用方法。

首先,分別構造兩個類,實現java.sql包下的Blob、Clob接口,完成接口提供的方法,并為其增加相應的構造函數,如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. }  

然后,通過byte數組或String構造Blob、Clob實例:

Java代碼

 

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

最后,通過PreparedStatement實例的setBlob方法將數據存儲到數據庫中。

Java代碼

 

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

2、oracle Clob存儲方法

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

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存儲方法

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

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. 幾個主流的Java連接池
  2. Java的JDBC數據庫連接池實現方法
  3. Tomcat5+MySQL JDBC連接池配置
  4. 基于JMX監(jiān)控下的JBoss數據庫連接池
  5. JBoss配置mysql數據庫連接池
責任編輯:金賀 來源: JavaEye博客
相關推薦

2010-08-31 13:30:15

PostgreSQL

2019-08-28 07:11:00

Oracle數據庫LOB

2009-07-22 15:58:34

JDBC調用Oracl

2009-07-08 17:42:33

JDBC存儲過程

2010-10-29 16:06:55

Oracle存儲過程

2011-08-23 16:23:13

OracleMySQLSQL Server

2011-05-18 10:07:13

oracle存儲

2009-07-17 13:54:51

JDBC存儲過程

2009-07-08 17:17:16

JDBC調用存儲過程

2010-05-04 15:49:24

Oracle修改

2011-08-25 09:31:43

JDBC調用Oracl

2017-09-04 11:48:56

MybatisOracle存儲過程

2010-10-29 16:12:51

Oracle存儲過程

2010-04-21 16:55:06

Oracle物理存儲結

2010-04-29 15:58:51

Oracle存儲過程

2010-10-28 10:10:48

oracle存圖片

2010-04-16 16:12:51

jdbc分頁

2009-07-20 15:51:45

JDBC連接Oracl

2010-04-14 15:22:53

Oracle JDBC

2016-11-01 15:05:35

VDI存儲vSAN
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人免费淫片aa视频免费 | 成人精品一区二区 | 精品美女久久久 | 亚洲欧美精品在线 | 日韩久草 | 亚洲成人一区 | 国产午夜精品久久久久免费视高清 | 国产精品久久久久不卡 | 久久精品亚洲欧美日韩精品中文字幕 | 亚洲免费在线视频 | 欧美色综合网 | 精品久久久久一区二区国产 | www.久草.com| 欧洲成人| 欧美一二区 | 成人影视网 | 毛片网站免费观看 | 亚洲另类视频 | 国产色爽 | 亚洲久草视频 | 黄色片亚洲 | 欧美日本在线观看 | 中国一级毛片免费 | 在线亚洲欧美 | 4h影视 | 久久久国产精品一区 | 不卡视频在线 | 91色在线| 久久久久久国产精品久久 | 亚洲国产精品一区在线观看 | 亚洲欧美日本国产 | 九九综合| 人操人人干人 | 久久成人亚洲 | 午夜影院 | 亚洲一区在线日韩在线深爱 | 天天操网| 日韩国产专区 | 日本一区二区三区在线观看 | 爱爱视频日本 | 精品国产乱码久久久久久丨区2区 |