真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

mybatis自定義類型處理器TypehHandler示例詳解-創(chuàng)新互聯(lián)

前言

創(chuàng)新互聯(lián)公司專注于成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、網(wǎng)頁設(shè)計、網(wǎng)站制作、網(wǎng)站開發(fā)。公司秉持“客戶至上,用心服務(wù)”的宗旨,從客戶的利益和觀點(diǎn)出發(fā),讓客戶在網(wǎng)絡(luò)營銷中找到自己的駐足之地。尊重和關(guān)懷每一位客戶,用嚴(yán)謹(jǐn)?shù)膽B(tài)度對待客戶,用專業(yè)的服務(wù)創(chuàng)造價值,成為客戶值得信賴的朋友,為客戶解除后顧之憂。

當(dāng)大家使用mybatis作為持久層框架時,在存儲和查詢數(shù)據(jù)時,只需要在mapper.xml文件中配置好對應(yīng)字段的JdbcType和JavaType,mybatis就可以幫我們轉(zhuǎn)化對應(yīng)的類型。這背后是有mybatis內(nèi)置的類型轉(zhuǎn)換器做轉(zhuǎn)換(可見源碼TypeHandlerRegistry)。但是有時候,我們會對某些字段做特殊處理,比如加密和解密、狀態(tài)轉(zhuǎn)換、類型轉(zhuǎn)換等。這個時候我們需要自定義類型轉(zhuǎn)換器。

類架構(gòu)

從上面的圖中可以看出MyBatis中整個類型處理器實(shí)現(xiàn)架構(gòu),TypeHandler接口定義了類型處理器,而TypeReference抽象類則定義了一個類型引用,用于引用一個泛型類型(此處很抽象,不好理解,詳見后續(xù)解析),BaseTypeHandler則是類型處理器的基礎(chǔ),是所有類型處理器的公共模塊,幾乎所有的類型處理器都是通過直接繼承BaseTypeHandler來實(shí)現(xiàn)的。

一、原理


使用場景:mybatis在預(yù)處理語句(PreparedStatement)中設(shè)置一個參數(shù)時,或者從結(jié)果集(ResultSet)中取出一個值時,都會用到TypeHandler。它的作用就是將java類型(javaType)轉(zhuǎn)化為jdbc類型(jdbcType),或者將jdbc類型(jdbcType)轉(zhuǎn)化為java類型(javaType)。

二、自定義類型處理器


實(shí)現(xiàn)TypeHandler接口或者繼承BaseTypehandler


TypeHandler是一個接口,它定義了如下四個方法,實(shí)現(xiàn)類必須去實(shí)現(xiàn),方法如下:


 void setParameter(PreparedStatement var1, int var2, T var3,JdbcType var4) throws SQLException;

 T getResult(ResultSet var1, String var2) throws SQLException;

 T getResult(ResultSet var1, int var2) throws SQLException;

 T getResult(CallableStatement var1, int var2) throws SQLException;
}

新聞標(biāo)題:mybatis自定義類型處理器TypehHandler示例詳解-創(chuàng)新互聯(lián)
當(dāng)前網(wǎng)址:http://weahome.cn/article/ihsij.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部