问题描述
今天写用户登录模块,部署到Tomcat服务器上的时候,发现读取数据库里的时间总是null,但是数据库里的日期字段是有数据的,百思不得其解。
解决方案
经过百度,谷歌后,发现可能是map里的resultType写错了,如图
应该改成这样
原因应该是BaseResultMap是定义好的,和POJO类建立起的映射关系,包括JDBC类型。如果改成上面1图那样,就不会使用这种映射关系,就可能会发生读取不到数据的情况。附上用MyBatis generator直接生成映射代码。
最后
这里如果使用resultMap的话,部署的环境下读取时间没啥问题,但是在做单元测试的时候,就出错了。错误提示是can not process result map,所以在单元测试的时候使用图1那种写法就行了(我认为比较好的方式是应该让生成环境中的代码和测试的代码分离,这样比较便于管理)。原因目前还不知道,待解决。