重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
將ibatis遷移到mybatis3時需要注意哪些事項?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
公司主營業(yè)務(wù):成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)建站是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)建站推出雞東免費做網(wǎng)站回饋大家。
新的DTDs
新的sqlMapConfig.xml DTD:
新的sqlMap (*.map.xml) DTD:
Configuration配置
配置根節(jié)點從
Settings配置
在配置的根節(jié)點:
現(xiàn)在是:
然后
這個配置可以刪除掉,因為使用命名空間已經(jīng)是一個強制的特性。
別名 必須從 元素移動到 這里 ... 和
變成:
變成:
Mapping
根元素從
parameterClass屬性必須改成parameterType
resultClass屬性必須改成resultType
class屬性必須改成type
columnIndex不在
groupBy屬性已經(jīng)被廢棄。下面是一個 2.x sqlMap的groupBy 例子:
新的:
Nested resultMaps嵌套的resultMaps
現(xiàn)在需要使用
...
需要改成:
...
雖然這個標(biāo)簽被廢棄了,但是他仍然可以在iBatis 2中使用。但是對3.0.3以上版本當(dāng)使用type="map"時有一個bug,并不指定 javaType 參數(shù)。這將導(dǎo)致:
There is no getter for property named '...' in 'interface java.util.Map'
這將會在MyBatis 3.0.4中解決,對3.0.3版本或更早的版本解決的方法是顯示的指定javaType
Inline parameters內(nèi)聯(lián)參數(shù) #value#
需要改成:
#{value} jdbcType changes jdbcType變化 jdbcType="ORACLECURSOR"
需要改成:
jdbcType="CURSOR"
還有
jdbcType="NUMBER"
需要改成:
jdbcType="NUMERIC" Stored procedures存儲過程 存儲過程的標(biāo)簽已經(jīng)不存在了,需要使用
需要改成:
如果你調(diào)用一個insert的帶返回值的存儲過程,你可以使用
對返回數(shù)據(jù)集的存儲過程,當(dāng)使用嵌套的resultMap時,這兒有一個bug (例如:出參resultMap包含一個
Caching緩存
需要改為:
注意:你可以忽略eviction="LRU",因為他是默認值。.
Dynamic SQL動態(tài)SQL
在我的項目中最常用的的動態(tài)SQL是isNotNull. 下面是替換正則表達式的示例:
正則表達式:
需要改為:
isEqual最常用,你可以使用類似的
SqlMapClient
這個類已經(jīng)不存在了,使用SqlSessionFactory替代 (詳細內(nèi)容看Mybatis文檔).
Custom type handler
用 TypeHandler 替換接口 TypeHandlerCallback。它具有稍有不同,但方法類似。
Custom data source factory
舊的接口:
com.ibatis.sqlmap.engine.datasource.DataSourceFactory
新的接口:
org.apache.ibatis.datasource.DataSourceFactory
替換下面的方法
public void initialize(Map properties)
為:
public void setProperties(Properties props)
看完上述內(nèi)容,你們掌握將ibatis遷移到mybatis3時需要注意哪些事項的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!