使用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"之间不能有空格