Mybatis類型處理器

想象這么一個(gè)場(chǎng)景。在類中用String類型修飾Person的性別(男女),在數(shù)據(jù)庫(kù)中用int類型來(lái)修飾男女(1,0)。那么這兩者怎么映射?

這就需要用到類型處理器。mybatis內(nèi)置類型處理器。但是有時(shí)內(nèi)置的轉(zhuǎn)換器不夠用下面研究一下如何自定義類型轉(zhuǎn)換器。

我們就用本文開(kāi)頭的例子,且不論合不合理,用自定義類型處理器的方法來(lái)實(shí)現(xiàn)上述轉(zhuǎn)換。

新建Person類

新建person表

新建處理器類PersonSexTypeHandler ,繼承BaseTypeHandler

把T換成String,重寫方法

下面來(lái)介紹每個(gè)方法的含義

該方法完成從java到DB這個(gè)方向的類型轉(zhuǎn)換,其中參數(shù):

*? ps:PreparedStatement對(duì)象

*? i:PreparedStatement對(duì)象操作參數(shù)的位置

*? parameter:java類型

*? jdbcType:jdbc數(shù)據(jù)庫(kù)類型

其余三種方式均是從DB往java這個(gè)方向轉(zhuǎn)換

至此,自定義類型處理器完成

然后在配置文件配置類型處理器

下面編寫mapper.xml映射文件 顯然用到resultMap

注意這里在映射轉(zhuǎn)換的屬性時(shí)同樣要標(biāo)識(shí)參與轉(zhuǎn)換的兩種類型

編寫查詢轉(zhuǎn)換SQL,并測(cè)試(從 int類型到String類型)

編寫插入SQL并測(cè)試(從String類型到int類型)

Bug:錯(cuò)誤的sex值。之前在編寫select語(yǔ)句時(shí)額外標(biāo)識(shí)了轉(zhuǎn)換雙方的類型,同樣這里在編寫insert語(yǔ)句同樣需要標(biāo)識(shí)

測(cè)試成功,成功增加7777的數(shù)據(jù)


才疏學(xué)淺之處,切莫在意。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?——2019.6.3 上午

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 今天開(kāi)發(fā) APP 后臺(tái)程序的時(shí)候,升級(jí)了一下數(shù)據(jù)類型,把很多原本 String 類型的變量改成了集合類型。這里涉及...
    程序之心閱讀 10,903評(píng)論 2 1
  • 1. 簡(jiǎn)介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存儲(chǔ)過(guò)程以及高級(jí)映射的優(yōu)秀的...
    笨鳥(niǎo)慢飛閱讀 6,248評(píng)論 0 4
  • 這是16年5月份編輯的一份比較雜亂適合自己觀看的學(xué)習(xí)記錄文檔,今天18年5月份再次想寫文章,發(fā)現(xiàn)簡(jiǎn)書(shū)還為我保存起的...
    Jenaral閱讀 3,148評(píng)論 2 9
  • 一、基礎(chǔ)知識(shí):1、JVM、JRE和JDK的區(qū)別:JVM(Java Virtual Machine):java虛擬機(jī)...
    殺小賊閱讀 2,569評(píng)論 0 4
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒(méi)有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,674評(píng)論 1 32

友情鏈接更多精彩內(nèi)容