版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mingyundezuoan/article/details/81916655
需求描述
- 检索当天的数据
- MyBatis
- 实现方案:
- time like “yyyy-MM-dd%”
- time between “今天0点” and “明日0点”
- 选择了后者,实现过程中通过 parameterMap = “java.util.Map” 封装参数传入,value 为String类型,Mapper.xml 中通过 #{} 或 ${} 都不正确,因为接口执行后根本无返回值
- 最后将传参改为 java.util.Date ,查询结果正确
原因分析
- time 在数据表中的数据类型 TimeStamp
- 无法与字符串相互比较
- 数据类型转换 jdbc 中 timestamp 对应 java 中 java.util.Date 数据类型,数据类型转换时无法匹配
- 但是本地执行SQL时 timestamp like “yyyy-MM-dd” 方式可以获取结果,但程序中却不能获取结果