MyBatis 使用枚舉或其他對象
阿新 • • 發佈:2019-03-22
入門到精通 處理器 -- 字符串 我沒 conf 標記 枚舉類型 clas
From《Mybatis從入門到精通》
1.筆記:
<!-- 6.3 使用枚舉或者其他對象 6.3.1 使用MyBatis提供的枚舉處理器 不懂: 因為枚舉除了本身的字面值外,還可以通過枚舉的ordinal()方法獲取枚舉值的 索引。在這個枚舉類中,disabled對應索引為0,enabled對應的索引為1. MyBatis在處理Java類型和數據庫類型時,使用TypeHandler(類型處理器),對這 兩者進行轉換。MyBatis為Java和數據庫JDBC中的基本類型和常用的類型提供了 TypeHandler接口實現。MyBatis在啟動時會加載所有的JDBC對應的類型處理器,這個 處理器會將枚舉類型轉換為字符串類型的字面值並使用。對於Enabled而言,便是disabled和 enabled字符串。 也就是說默認的org.apache.ibatis.type.EnumTypeHandler,這個處理器只對枚舉 的字面值進行處理,也就是數據庫中需要存放著字符串,這樣才能夠轉化成相應的枚舉類型 所以不適合當前的情況。MyBatis還提供了org.apache.ibatis.type.EnumOrdinalTypeHandler 處理器,這個處理器使用枚舉的索引值進行出來,可以解決此處遇到的問題。要使用 這個處理器,需要在mybatis-config.xml中進行配置: <typeHandlers> <typeHanderl javaType="tk.mybatis.simple.type.Enabled" hadler="org.apache.ibatis.type.EnumOrdinalTypeHandler"/> </typeHandlers>-->
2.增加的枚舉類型:
package tk.mybatis.simple.type; public enum Enabled { disabled,//禁用 enabled; //啟用 }
3.對MyBatis配置文件的配置
<typeHandlers> <typeHanderl javaType="tk.mybatis.simple.type.Enabled" hadler="org.apache.ibatis.type.EnumOrdinalTypeHandler"/> </typeHandlers>
1.筆記:
<!-- 6.3.2 使用過自定義的類型處理器 ——Java枚舉類型,我感覺我還是需要看一下, 裏面有很多東西,一下子理解不了 ——標記一下,這部分我沒有細細的研究。 -->
MyBatis 使用枚舉或其他對象