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

詳解Ibatis寫CLOB數據

開發 后端
Ibatis是一個高效,方便,易于學習的數據訪問組件,在性能上比hibernate高,學習難度也比hibernate和jdo要低,而且它比直接使用jdbc方便和易于維護。

Ibatis是一個高效,方便,易于學習的數據訪問組件,在性能上比hibernate高,學習難度也比hibernate和jdo要低,而且它比直接使用jdbc方便和易于維護。所以Ibatis深入大家的喜愛,一些對性能有更高的要求的系統(如保險,金融行業系統),或改造遺留系統時,Ibatis是數據訪問組件的首選。

在使用Oracle數據庫時,讀取CLOB和BLOB等大類型的數據一直是個比較犯難的事,一般都是通過JDBC代碼來實現對CLOB和BLOB數據的讀寫,效果和性能都是最好的,但是代碼也相當復雜,且代碼難以重用。

公司的項目正好有這方面的需要,要求我給予解決。在網上找了一些方法,好多不能滿足需求,而且都是轉載,于是看了下ibatis包,發現ibatis里面已經封裝了類,只要直接使用即可。

有兩種方式實現:

1.通過配置ParameterMap和ResultMap來實現對LOB類型的讀寫

1.1 java代碼

假設java類中有個字符串屬性

 

  1. private String  detail; // 詳細描述 

1.2 sqlmap配置

 

  1. <parameterMap class="Description" id="DescriptionParam"> 
  2.        <parameter property="detail" javaType="java.lang.String" jdbcType="NCLOB"      typeHandler="com.ibatis.sqlmap.engine.type.ClobTypeHandlerCallback"/> 
  3.     <parameter property="id" javaType="java.lang.Long"/> 
  4.    parameterMap> 

 

注意:因為使用了ParameterMap作為輸入參數,在插入語句中用?號來代替屬性值(如:#detail#)

新增數據時配置

 

  1. <insert id="addDescription" parameterClass="Description" > 
  2.       
  3.      insert into description  
  4.     (id,   
  5.      detail)  
  6.   values(#?#,#?#)  
  7.     ]]> 
  8.     <selectKey resultClass="java.lang.Long" keyProperty="id" type="pre"> 
  9.          select SEQ_description_ID.NEXTVAL from DUAL  
  10.     selectKey> 
  11.   insert> 

 

 

 

更新數據時配置

 

  1. <update id="updateDescription" parameterClass="Description" > 
  2.      update description set tab_detail     = #?#  where id=#?#    
  3.  
  4.  update> 
  5.  

 

2. 通過parameterClass傳入參數(推薦)

2.1 java代碼

假設java類中有個字符串屬性

 

  1. private String  detail; // 詳細描述 

2.2 sqlmap配置

新增數據時配置

 

  1. <insert id="addDescription" parameterClass="Description" > 
  2.       
  3.       insert into description (id, detail)  
  4.       values (#id#, #tabDetail,handler=com.ibatis.sqlmap.engine.type.ClobTypeHandlerCallback#)  
  5.     ]]> 
  6.     <selectKey resultClass="java.lang.Long" keyProperty="id" type="pre"> 
  7.          select SEQ_description_ID.NEXTVAL from DUAL  
  8.     selectKey> 
  9.   insert> 

 

 

 

更新數據時配置

 

  1. <update id="updateDescription" parameterClass="Description" > 
  2.     update description  
  3.     <dynamic prepend="set" > 
  4.       <isNotNull prepend="," property="detail" > 
  5.        tab_detail     = #detail,handler=com.ibatis.sqlmap.engine.type.ClobTypeHandlerCallback#  
  6.       isNotNull> 
  7.    dynamic> 
  8.   where id=#id#    
  9.  
  10. update> 

 

 

ibatis還存在很多的typeHandler,大家自己可以看看

【編輯推薦】

  1. Java持久層框架iBATIS 3(BETA 1)版本發布
  2. iBATIS配置類及操作類的淺析
  3. iBATIS參數理解淺析
  4. iBATIS模糊查詢的實現實例淺析
  5. Hibernate與iBATIS的對比
責任編輯:金賀 來源: ITEYE博客
相關推薦

2009-07-15 16:42:03

iBATIS讀寫CLO

2009-07-15 16:26:04

iBATIS Clob

2009-07-15 17:01:29

iBATIS操作CLO

2009-07-15 11:43:13

<iterate>標簽

2009-07-22 16:13:40

iBATIS用法SqlMapTempl

2009-07-21 17:06:35

iBATIS.NET執

2009-07-16 17:40:48

iBATIS高級查詢iBATIS使用

2009-07-20 17:42:04

iBATIS入門

2009-07-21 14:57:41

iBatis中調用存儲iBatis

2010-05-31 17:18:39

Cassandra數據

2017-09-05 09:18:54

OracleCLOB大數據

2009-07-16 09:56:32

什么是iBATIS

2011-07-19 17:33:53

存儲過程javaibatis

2009-07-15 15:47:49

iBATIS是什么

2009-07-21 11:12:00

iBATIS配置

2009-07-21 15:21:59

iBATIS.NET多

2009-07-16 11:21:19

ibatis主鍵自動生成

2009-09-21 16:56:14

Hibernateibatis

2009-07-16 09:14:26

iBATIS DAO

2009-07-15 17:19:31

iBATIS Ecli
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品成人69xxx免费视频 | 午夜精品一区二区三区免费视频 | 国产成人久久精品一区二区三区 | 久久精品国产久精国产 | 久久久久久国产免费视网址 | 欧美三级视频在线观看 | 日韩欧美三区 | 欧美在线高清 | 久久成人精品视频 | 永久免费在线观看 | 国产精品片 | 亚洲欧美第一视频 | 日韩久久久久 | 日韩亚洲欧美综合 | 福利视频一区 | 伊人伊人 | 亚洲欧美日韩在线 | 亚洲一区二区在线播放 | 黄色毛片免费看 | 国产成人久久精品一区二区三区 | 国产日韩久久 | 国产成人在线看 | 天天艹| 精品二三区 | 日韩在线观看中文字幕 | 国产一区二区在线免费观看 | 91精品久久久久久久久99蜜臂 | 黄色片在线免费看 | 2022精品国偷自产免费观看 | 国产成人精品免高潮在线观看 | 欧美日韩成人 | 中文字幕在线第一页 | 91久久久久久久久久久久久 | 亚洲欧美日韩国产综合 | 99热在这里只有精品 | 久久三级av | 欧美成人一区二区三区 | 99久久久无码国产精品 | 欧美性久久 | 久久精品国产亚洲一区二区三区 | 中文字幕在线观看国产 |