|
類(lèi)型別名只是一個(gè)更短的Java類(lèi)型名。它只和xml配置有關(guān),并且僅僅是為了縮減冗余的全限定類(lèi)名的輸入量,例如:
使用這個(gè)配置,"Blog"現(xiàn)在可以在任何"domain.blog.Blog"可以出現(xiàn)的地方使用。 有許多內(nèi)建的常用Java類(lèi)型的別名,它們是大小寫(xiě)不敏感的,考慮到重載的名稱(chēng)問(wèn)題,要注意對(duì)于原始類(lèi)型的特殊處理。
P14: typeHandlers無(wú)論何時(shí)MyBatis在PreparedStatement設(shè)置參數(shù)或從ResultSet檢索一個(gè)值,TypeHandler總是以一種適合于這種Java類(lèi)型的方式來(lái)檢索到值。下面的表格描述了默認(rèn)的TypeHandler。
P15: 你可以覆蓋type handler或定制一個(gè)去處理不支持或非標(biāo)準(zhǔn)化的類(lèi)型。為此,只要實(shí)現(xiàn)TypeHandler接口(org.mybatis.type)、映射TypeHandler實(shí)現(xiàn)類(lèi)到一個(gè)Java類(lèi)型(也可以是一個(gè)JDBC類(lèi)型)就行了,例如:
使用這樣一個(gè)TypeHandler會(huì)覆蓋現(xiàn)存的Java字符串屬性、varchar參數(shù)和結(jié)果的type handler。注意:MyBatis不會(huì)依據(jù)數(shù)據(jù)庫(kù)元數(shù)據(jù)自省出類(lèi)型,所以必須定義參數(shù)和結(jié)果映射中的類(lèi)型是一個(gè)varchar字段才能鉤住正確的type handler. 這是因?yàn)?/span>MyBatis不會(huì)感知到數(shù)據(jù)類(lèi)型,除非語(yǔ)句被執(zhí)行。
objectFactory每當(dāng)MyBatis創(chuàng)建結(jié)果對(duì)象的新實(shí)例時(shí),它會(huì)使用一個(gè)ObjectFactory實(shí)例來(lái)達(dá)到此目的。默認(rèn)的ObjectFactory只是用默認(rèn)構(gòu)造函數(shù)來(lái)初始化這個(gè)目標(biāo)類(lèi),如果參數(shù)映射存在,就使用一個(gè)參數(shù)化的構(gòu)造函數(shù)。如果想覆蓋ObjectFactory的默認(rèn)行為,可以自己創(chuàng)建一個(gè)。例如: |
|
|
來(lái)自: CevenCheng > 《類(lèi)型轉(zhuǎn)換器》