設計資料庫時,有時為了友善,我們會把某些字段設定為字典類型。比如使用者性别,用1表示男性,2表示女性,3表示保密。但是在Java bean中,我又希望這些字典能夠自動與枚舉類型對應上,或者說轉化為枚舉對象。
小博老師今天就跟大家介紹下Mybatis中如何實作資料庫字典與枚舉類型的轉換。
如上,我們假設User表中的gendar字段定義為了1/2/3分别表示男/女/保密。那麼先設計一個與之對應的枚舉類,代碼如下:
getGendarByCode方法是通過性别的值(字典代碼)擷取枚舉對象。
User Java Bean源代碼如下:
性别屬性類型設定為GendarEnum,也就是前面定義的枚舉類型。
接下來我們要定義一個TypeHandler,把資料庫字典與枚舉對象對應上,代碼如下:
我們還要在Mapper xml中配置User屬性GendarEnum的TypeHandler:
運作如下的測試案例,即可列印出性别的名稱: