使用ibatsi时,如果你的javabean中有个属性不是string, date, int等数据库直接支持的类型,那么就要用自定义ibatis type handler,来告诉ibatis在对它进行数据库存取时应该如何做java type与sql type的互转。
1. 建一个类实现TypeHandlerCallback接口, 如
public class SomeTypeHandlerCallback implements TypeHandlerCallback { .... }
2.在sql map文件中使用它。为了避免写起来太啰嗦,建议先定义一下typeAlias
<typeAlias alias="someTypeHandlerCallback " type="com.some....SomeTypeHandlerCallback" />
3.在用于查询的resultMap中引用一下
<resultMap id="helloResult" class="hello"> ... <result property="some" column="SOME" typeHandler="someTypeHandlerCallback"/> ...
4.在用于增、改的parameter中也要引用一下
<insert id="insertHello" parameterClass="hello"> <![CDATA[ insert into hello ( ..., SOME )values ( ... #some,handler=someTypeHandlerCallback# , ); ]]>
特别注意: 上面的","和"handler"之间不能有空格