天天看點

博為峰JavaEE技術文章 ——MyBatis 在映射中使用枚舉類型

博為峰JavaEE技術文章 ——MyBatis 在映射中使用枚舉類型

設計資料庫時,有時為了友善,我們會把某些字段設定為字典類型。比如使用者性别,用1表示男性,2表示女性,3表示保密。但是在Java bean中,我又希望這些字典能夠自動與枚舉類型對應上,或者說轉化為枚舉對象。

小博老師今天就跟大家介紹下Mybatis中如何實作資料庫字典與枚舉類型的轉換。

如上,我們假設User表中的gendar字段定義為了1/2/3分别表示男/女/保密。那麼先設計一個與之對應的枚舉類,代碼如下:

博為峰JavaEE技術文章 ——MyBatis 在映射中使用枚舉類型

getGendarByCode方法是通過性别的值(字典代碼)擷取枚舉對象。

User Java Bean源代碼如下:

博為峰JavaEE技術文章 ——MyBatis 在映射中使用枚舉類型

性别屬性類型設定為GendarEnum,也就是前面定義的枚舉類型。

接下來我們要定義一個TypeHandler,把資料庫字典與枚舉對象對應上,代碼如下:

博為峰JavaEE技術文章 ——MyBatis 在映射中使用枚舉類型

我們還要在Mapper xml中配置User屬性GendarEnum的TypeHandler:

博為峰JavaEE技術文章 ——MyBatis 在映射中使用枚舉類型

運作如下的測試案例,即可列印出性别的名稱:

博為峰JavaEE技術文章 ——MyBatis 在映射中使用枚舉類型