欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

iBATIS中怎么操作Blob與Clob

iBATIS中怎么操作Blob與Clob,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

專注于為中小企業(yè)提供成都做網(wǎng)站、成都網(wǎng)站設計服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)鐘山免費做網(wǎng)站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了成百上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉變。


不過在spring 中已經(jīng)提供了很好的實現(xiàn),所以這又省去了很多的功夫,接下來看看iBATIS是如何支持Clob和blob的。

iBATIS提供了TypeHandler接口,用于處理數(shù)據(jù)類型,基本的實現(xiàn)類為BaseTypeHandler

在spring 中,提供了AbstractLobTypeHandler作為基礎類,并且提供了相應的模版方法,所有的工作由LobHandler處理。

BlobByteArrayTypeHandler 主要用于處理blob類型數(shù)據(jù),使用byte[]來映射相應的Blob

ClobStringTypeHandler 用于處理Clob類型數(shù)據(jù),使用字符串來映射Clob

有一點需要注意的是,AbstractLobTypeHandler中實現(xiàn)了事務支持,需要用來釋放相應的資源,所以一定需要在事務環(huán)境中進行。

下面是一個簡單的例子:

public class Food {   private String content;    private String id;    private byte[] image;    private String name;         ...   }

xml如下:說明一下,在resultMap中可以通過typeHandler來指定具體的handler.在inline變量中,可以通過handler來定義相應的typeHandler

﹤sqlMap namespace="Food"﹥           ﹤typeAlias alias="Food" type="org.esoft.hdb.bo.Food"/﹥      ﹤resultMap id="foodResult" class="Food"﹥     ﹤result property="id" column="C_ID"/﹥     ﹤result property="name" column="C_NAME"/﹥     ﹤result property="content" column="C_content"    typeHandler="org.springframework.orm.ibatis.support.ClobStringTypeHandler"/﹥     ﹤result property="image" column="C_image"    typeHandler="org.springframework.orm.ibatis.support.BlobByteArrayTypeHandler"/﹥      ﹤/resultMap﹥      ﹤sql id="foodFragment"﹥select C_ID,C_NAME,C_CONTENT,C_IMAGE from T_FOOD﹤/sql﹥     ﹤select id="getAll" resultMap="foodResult"﹥     ﹤include refid="foodFragment"/﹥      ﹤/select﹥      ﹤select id="selectById" parameterClass="string" resultMap="foodResult"﹥     ﹤include refid="foodFragment"/﹥ where C_ID=#id#﹤/select﹥           ﹤insert id="insert" parameterClass="Food"﹥ insert into T_FOOD ( C_ID,     C_NAME,C_CONTENT, C_IMAGE) values ( #id#,     #name#,#content,handler=org.springframework.orm.ibatis.support.ClobStringTypeHandler#,     #image,handler=org.springframework.orm.ibatis.support.BlobByteArrayTypeHandler#)     ﹤/insert﹥           ﹤update id="update" parameterClass="Food"﹥ update T_FOOD set C_NAME = #name#,     C_CONTENT =     #content,handler=org.springframework.orm.ibatis.support.ClobStringTypeHandler#,     C_IMAGE =     #image,handler=org.springframework.orm.ibatis.support.BlobByteArrayTypeHandler#     where C_ID = #id# ﹤/update﹥           ﹤delete id="deleteById" parameterClass="string"﹥ delete from T_FOOD where C_ID = #id#     ﹤/delete﹥        ﹤/sqlMap﹥     public interface FoodService {         void save(Food food);   Food get(String id);   /**   * @param food   */   void update(Food food);   }    public class FoodServiceImpl implements FoodService {   private FoodDAO foodDAO;    private DaoCreator creator;    public void setCreator(DaoCreator creator) {       this.creator = creator;   }    protected FoodDAO getFoodDAO() {       if (foodDAO == null) {      foodDAO = (FoodDAO) creator.createDao(FoodDAO.class, Food.class);       }       return foodDAO;   }    public Food get(String id) {       return getFoodDAO().get(id);   }   public void save(Food food) {       getFoodDAO().save(food);   }   public void update(Food food) {       getFoodDAO().update(food);   }    }    spring xml 配置:     。。。    ﹤bean id="lobHandler"     class="org.springframework.jdbc.support.lob.DefaultLobHandler"/﹥           ﹤bean id="transactionManager"     class="org.springframework.jdbc.datasource.DataSourceTransactionManager"﹥     ﹤property name="dataSource" ref="dataSource"/﹥      ﹤/bean﹥           ﹤bean id="sqlMapClient"     class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"﹥     ﹤property name="dataSource" ref="dataSource"/﹥     ﹤property name="configLocation"﹥    ﹤value﹥SqlMapConfig.xml﹤/value﹥     ﹤/property﹥     ﹤property name="lobHandler" ref="lobHandler"/﹥      ﹤/bean﹥           ﹤bean id="daoCreate" class="org.esoft.hdb.ibatis.IbatisDaoCreator"﹥     ﹤property name="sqlMapClient" ref="sqlMapClient"/﹥      ﹤/bean﹥           ﹤bean id="foodService" class="org.esoft.hdb.service.FoodServiceImpl"﹥     ﹤property name="creator" ref="daoCreate"/﹥      ﹤/bean﹥                ﹤aop:config﹥     ﹤aop:pointcut id="foodServiceMethods"    expression="execution(* org.esoft.hdb.service.FoodService.*(..))"/﹥     ﹤aop:advisor advice-ref="txAdvice" pointcut-ref="foodServiceMethods"/﹥      ﹤/aop:config﹥      ﹤tx:advice id="txAdvice" transaction-manager="transactionManager"﹥     ﹤tx:attributes﹥    ﹤tx:method name="*" propagation="REQUIRED"/﹥     ﹤/tx:attributes﹥      ﹤/tx:advice﹥

簡單的測試:

save :       Food food = new Food();       food.setPk("1");       food.setName("food1");       BufferedInputStream in = new BufferedInputStream(getClass()     .getResourceAsStream("/1.gif"));       byte[] b = FileCopyUtils.copyToByteArray(in);       food.setImage(b);     in = new BufferedInputStream(getClass().getResourceAsStream(     "/hibernate.cfg.xml"));       b = FileCopyUtils.copyToByteArray(in);       food.setContent(new String(b));       foodService.save(food);   update:   Food food = foodService.get("1");       BufferedInputStream in = new BufferedInputStream(getClass()     .getResourceAsStream("/jdbc.properties"));       byte[] b = FileCopyUtils.copyToByteArray(in);       food.setContent(new String(b));       foodService.update(food);       food = foodService.get("1");       assertNotNull(food.getImage());

關于iBATIS中怎么操作Blob與Clob問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關知識。

本文題目:iBATIS中怎么操作Blob與Clob
分享鏈接:http://aaarwkj.com/article42/jjjhec.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供建站公司、企業(yè)網(wǎng)站制作網(wǎng)站營銷、品牌網(wǎng)站制作、軟件開發(fā)、電子商務

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網(wǎng)站建設
亚洲午夜av久久乱码| 伊人久久精品一区二区| 久久这里只有精品视频| 热久久视频这里只有精品| 尤物视频最新在线观看| 91久久高清国语自产拍| 人人妻人人澡人人妻| 国产亚洲av麻豆精品推荐| 国产成人精品一二三四区| 伊人婷婷综合激情网| 91成人精品永久在线观看| 日韩精品中文乱码在线观看| 麻豆国产传媒片在线看| 少妇高潮喷水下面的水| 亚洲av成人免费在线| 日韩二区三区精品视频| 999久久免费精品国产| 中文字幕在线不卡精品视频| 国产欧美日韩在线高清| 欧美精品一区二区三区狠狠| 日韩精品中文字幕国产精品| 欧美日韩精品免费在线观看| 午夜麻豆影网在线观看| 日韩区一区二在线视频| 亚洲国产一区二区三区三州| 国产精品无遮挡猛进猛出| av成人资源一区久久| 亚洲精品色在线网站国产呦| 亚洲免费精品一区二区三区四区| 中文字幕黄色三级视频| 欧美日韩亚洲精品内裤| 国产精品久久久亚洲不卡| 亚洲一区二区三区久久精品| 日本免费熟女一区二区| 欧美大片免费久久精品| 日本黄色高清视频一区| 大胸妇女引诱老师在线观看| 欧洲一区二区三区黄色| 国产精品国产三级区| 99热这里只有精品网址| 蜜桃精品一区二区三区在线观看|