ibatis处理日期
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ibatis处理日期相关的知识,希望对你有一定的参考价值。
C#里面日期类型DateTime不能为空而且默认最小值比sqlserver2000的要小,如果想给数据库里面的日期字段赋空值该怎么弄呢~!用Nullable<DateTime>的话ToString()方法好像又不能固定格式(“yyyy-MM-dd”)之类的~!
我有个想法用ibatis 的isGreaterThan来判断,又不知道可行不,也不知道compareValue=“2012-1-1”这种写法可以不~!
求指教~!大伙儿都用什么办法解决这样的问题~!
比如 你ibatis插入的时候 用<isEqual>标签就可以 判断是不是相等就可以 当然你说的也是一个办法
还有就是 从属性类别上改 别用date了 使用string 只要格式对 数据库可以识别的 或者通过ibatis转换也可以 参考技术A 1.数据库字段默认可以为空
2.想要空值,插入的时候不插入该时间字段不就OK了?追问
但是插入数据的时候parameterClass用的是封装的一个类~!类里面有个属性是DateTime的~!天生不能为空~!还有个默认值是0001-01-01 吧貌似~!插入数据库就数据溢出~!这个只能用ibatis判断吧~!?
貌似我现在用isGreaterThan 实现了~!大于1573-1-1就插入值~!否则就插入null~!
MyBatis异常处理org.apache.ibatis.executor.ExecutorException
由于测试缘故,数据库被加入了很多测试数据。再次执行原来的查询出现了异常org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: Statement returned more than one row, where no more than one was expected.
通过描述可以看到,期待返回结果数应该小于等于1,但却返回多条记录。开始由于查询返回的对象是A,检查了一下A发现没有重复记录,随后发现A类内部有成员B。
class A
B b;
而在Mapper中的定义的Sql中查询b是返回唯一的结果,而不是一个List。因此是在查询b的时候造出现了异常。最后清理掉数据,异常解决。 所以当遇到这种异常时候不但要关注查询返回结果时候唯一,还要注意所查询的结果中包含的成员对象是否允许有多个。
以上是关于ibatis处理日期的主要内容,如果未能解决你的问题,请参考以下文章
NoClassDefFoundError: com/ibatis/sqlmap/engine/transaction/external/ExternalTransactionConfig处理(示例代码
MyBatis异常处理org.apache.ibatis.executor.ExecutorException
mybatis-ehcache整合中出现的异常 ibatis处理器异常(executor.ExecutorException)解决方法