国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Mybatis實戰之TypeHandler高級進階

Mybatis實戰之TypeHandler高級進階

2020-08-16 14:29南軻夢 Java教程

本文主要介紹了自定義的枚舉TypeHandler的相關知識,具有很好的參考價值,下面跟著小編一起來看下吧

上篇文章分享了在項目實戰中自定義Mybatis的TypeHandler來處理枚舉類型。文章結尾也指出了美中不足之處,那就是每次都需要指定我們自定義的枚舉TypeHandler。 隨著項目枚舉類型的增多,每次都要寫一遍這個會令人很反感。那么,本次我們就來解決這一痛點。

思路分析

  1. 上篇文章講到, mybatis有默認的處理枚舉類型的TypeHandler,因此,我們要將我們自定義的枚舉TypeHandler注冊進入Mybatis。
  2. 注冊完我們自定義的TypeHandler后,還得告訴Mybatis只要一遇到我們指定的枚舉類型(上篇的DisplayedEnum)就用自定義的枚舉TypeHandler(上篇為EnumTypeHandler)進行轉換。由于Mybatis在啟動時就會通過TypeHandlerRegistry進行注冊,即建立JdbcType, JavaType, TypeHandler三者之間的關系, 因此,這意味著在Mybatis啟動時我們也需要通過TypeHandlerRegistry將我們的所有的枚舉類型(JavaType)與自定義的枚舉TypeHandler(EnumTypeHandler)建立聯系。

為了方便大家理解, 貼上Mybatis中的TypeHandlerRegistry的相關部分源碼:

Mybatis實戰之TypeHandler高級進階

實戰

SqlSessionFactoryBean

由于我們項目使用了Spring, 是用Spring集成的Mybatis(廢話,大家都是這么干的)。Spring通過SqlSessionFactoryBean來初始化啟動Mybatis。 因此,我們應該在它身上下手,然而,一切并不是那么順利。

查看了一下SqlSessionFactoryBean的源碼,發現SqlSessionFactoryBean并沒有任何地方可以讓我們切入, 進而來調用TypeHandlerRegistry進行注冊我們的枚舉。 更令人蛋疼的是其所有屬性全是private, 這下不僅AOP切入不行,連通過繼承偷懶都不行了。

作罷,咱只有老老實實的重寫一遍SqlSessionFactoryBean的代碼了(copy還不簡單)。

DefaultSqlSessionFactoryBean

代碼量比較多,就只貼關鍵代碼了。步驟如下:

  1. DefaultSqlSessionFactoryBean繼承SqlSessionFactoryBean。
  2. 將SqlSessionFactoryBean中的代碼全部copy到DefaultSqlSessionFactoryBean。
  3. 調用以下方法。

Mybatis實戰之TypeHandler高級進階

切記, 以上代碼要在這個代碼之前執行:

Mybatis實戰之TypeHandler高級進階

因為, xmlMapperBuilder.parse()方法會開始解析我們所有的所有mapper.xml的配置文件了,這時候會把resultMap也解析了,這就會導致我們自定義的TypeHandler不生效。

切記! 切記

最后

以上,代碼算是完工了,記得在Spring的配置文件中, 將SqlSessionFactoryBean替換為我們的DefaultSqlSessionFactoryBean。 不然我們的活就是白干了。

接下來,就可以開始浪了, 之前我們需要這樣寫:

?
1
2
3
4
5
<resultMap>
 ...
 <result column="status" jdbcType="TINYINT" property="status" typeHandler="xxx.xxx.EnumTypeHandler" />
 ...
</resultMap>

而現在,我們可以不寫typeHandler了。

?
1
2
3
4
5
<resultMap>
 ...
 <result column="status" jdbcType="TINYINT" property="status" />
 ...
</resultMap>

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持服務器之家!

原文鏈接:http://www.cnblogs.com/dongying/p/6410905.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: av片在线观看 | 久久成人高清 | 欧美日本韩国一区二区 | 亚洲精品成人在线 | 欧美一性一交 | 亚洲国产精品yw在线观看 | 中文字幕av一区二区 | 成年免费视频黄网站在线观看 | 欧美激情一区 | 亚洲一区二区三区视频 | 久久一级| 亚洲自拍偷拍综合 | 午夜亚洲 | 日韩欧美国产一区二区 | 国产精品美女久久久 | 亚洲va | 国产在线精品一区 | 在线视频一区二区 | 99r在线| 国产一区二区三区在线免费看 | 亚洲 欧美 另类 综合 偷拍 | 午夜欧美一区二区三区在线播放 | 玖玖国产精品视频 | 久久精品久久久久久久久久16 | 成人在线 | 久久成人av | 精品久久一区二区三区 | 二区三区在线观看 | 午夜羞羞视频 | 欧美一区二区三区免费 | 成人国产精品久久久 | 日日摸夜夜添夜夜添精品视频 | 久久九九这里只有精品 | 日本特黄特色aaa大片免费 | 亚洲在线观看一区二区 | 成人免费xxx在线观看 | 亚洲二区在线观看 | 91电影在线观看 | 精品久久久久久久久久久 | 亚洲精品免费在线观看 | 九九综合|