类型转换器,是MyBatis的一个部分,用来转换参数到数据库,数据库到参数的一个内容。
MyBatis内置了很多类型转换器:
具体见:http://www.mybatis.org/mybatis-3/zh/configuration.html#typeHandlers
而本文要讲解的是MyBatis提供我们的自定义类型转换器
有2个方法可以实现自定义类型转换器:
继承BaseTypeHandler<T>
或者实现 TypeHandler<T>
这是官方文档给出的一个例子,大概就是这样的,那么我们需要给定他们决定映射什么类型的属性
有2种方式:
1.利用注解在转换器类上注明,比如
@MappedTypes(User.class)
@MappedJdbcTypes(JdbcType.VARCHAR)
2.在配置上写明
<typeHandlers>
<typeHandler handler="typeHandler.userHandler" javaType="model.User" jdbcType="VARCHAR"/>
</typeHandlers>
这里有一个值得提一下的点,我在百度上查找的DEMO好多运行起来并没有想象中的结果,可能就是一个细节点上出错了,
比如我要在插入的属性上进行转换,那么我们必须指定:
比如:<insert id="insertOne">
insert into user2(json) values(#{user,javaType=user,jdbcType=VARCHAR})
</insert>
这样才能完成相应的转换。