遇到一个诡异的问题,MyBatis 根据主键 ID 删除数据,不报错,SQL 也正常打印出来,但是数据并没有删除。拎 SQL 到数据库中执行,却能正常执行,能把数据删除。

MyBatis 打印的 SQL,好像没啥问题

image

但是数据还在,并没有删除

image

拎 SQL 到数据库中执行,却能正常执行,能把数据删除。

image

这真是太奇怪了

一开始想的会不会是 MyBatis 没有 commit,但是仔细想,MyBatis 不是自动 commit 的吗,insert 和 update 都能正常执行,怎么 delete 反而没效果呢?

debug 看看

image

差点吐血。。。原来是 ID 前面多了一个空格。。。

改了之后果然能删除了

image

image

这种错误真的是低级而又不容易发现

原文链接:https://miansen.wang/2020/03/15/1/