Mybatis 开发时遇到的问题 Sucha
1、Error attempting to get column 'create_time' from result set. Cause: java.sql.SQLException: Zero date value prohibited
- 先说解决方案
原来mysql连接配置:
jdbc:mysql://121.40.73.192:3306/smart_order?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8&tinyInt1isBit=false&allowMultiQueries=true
需在最后加上:
&zeroDateTimeBehavior=convertToNull
- 解释如下:
设置zeroDateTimeBehavior 属性,当遇到DATETIME值完全由0组成时,最终的有效值可以设置为,异常(exception),一个近似值(round),或将这个值转换为null(convertToNull)。
默认情况为exception,设置这个属性会抛出一个SQLException异常,其SQLSate码为S1009。
这个状态码在写存储过程处理异常时也可以用到。
- convertToNull,返回null来替代0000-00-00这样的日期。
- round,将日期转换为0001-01-01。
- 因此,出现0000-00-00 属于一个无效日期,用convertToNull属性即可。