当执行sql语句出异常(比如违反某个约束),sql语句执行不成功 缓存却被更新了,缓存数据成了脏数据 这里即使设置了那句执行的sql的flushOnExecute也不行 估计ibatis是先flush然后在执行sql,然后就不管sql执行成不成功都把缓存更新。。