导航

ISBATILNET与DATATIME类型

Posted on 2007-06-23 08:20  实验室特别官员  阅读(486)  评论(1)    收藏  举报

      上星期在开发过程中,我在做一个查询功能时,发现对象的DataTime类型成员老是被初始化为0001-00-00 00:00:00。接着我发现DataTime类型竟然是值类型(Struct类型),我是说为何不能将NULL类型赋值给它呢,原来如此啊。
      那如何才能将这个对象的DataTime类型的成员置为空值再传给ISBATILNET呢?(这里说明一下,我在ISBATILNET的相关XML文件中使用了

<isNotEmpty prepend="Between" property="BeginDate">
      to_date(
'$BeginDate$''yyyy-mm-dd')
    
</isNotEmpty>

)因此,我必须将它置为空,否则会使得SQL语句不正确。
      首先去百度中文搜索,叮咚,哈哈,得到一个 IBatisNet中将DateTime字段保存为null 的解决方法:自己定义一个类并实现ITypeHandlerCallback接口,

自定义类
然后在相关XML文件中加上<typeAlias alias="DateTimeHandler" type="test.DateTimeHandler,test" />,这时你就可以将DateTime字段保存为null。不过我自己最后就是把那个实体类的DateTime类型的成员换成了String类型,然后就OK了呵呵。