mybatis之自定义TypeHandler
typehandler有什么用?
首先来讨论下mybatis sql查询回来的结果集如何封装pojo类。在jdbc里,查询回来的结果集是封装在ResultSet里,需要映射成相应的实体类。
mybatis配置里提供了两种方式,提供给我们做结果集的转换
-
resultType:pojo类与结果集里的字段名必须一样(经过简单的处理后一样,比如去除表字段中的下划线,或大小写转换)
<select id="selectBook" resultType="book"> select * from book where id = #{id} </select>
-
resultMap:必须指定每个字段的java类型和jdbc类型,mybatis里有对应的typehandler去处理
<select id="selectBook" resultMap="BaseResultMap"> select * from book where id = #{id} </select>
mybatis已经内置了常见字段类型的转换,通常我们使用默认的typehandler就可以了。
但是有些字段转换的时候我们需要做一些特殊的处理,这时我们就需要自定义typehandler
自定义TypeHandler
可以直接实