项目中,在使用mybatis进行批量的更新删除操作的时候,会遇到一个大坑。
你会发现你后台打印的sql语句一点问题都没没有,然后你复制到你的小海豚或者navicat里面执行也是没有任何毛病的,但就是你的项目启动起来,执行批量操作的时候会出BUG
最后才发现,问题出在了连接数据库语句后,是需要加参数的,具体代码如下:
self.datasource.url = jdbc:mysql://127.0.0.1:3306/yourdatabase?allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&autoReconnect=true&characterEncoding=UTF-8&characterSetResults=UTF-8
这一句是重点
allowMultiQueries=true
当你的数据库中日期类型的默认值为0000-00-00的时候,你从数据库拿值,是会报错的。需要加上这一参数
zeroDateTimeBehavior=convertToNull