需求如下:
需要更新数据库中若干个数据项的数据,为了提高效率,我使用了CompleteFeature,但是会发现一个问题,
在mybatis执行更新语句时,不是原子操作,会将更新操作分成三步:
1、预处理要执行的sql
2、填充参数
3、返回执行结果
由于被分成3步,在程序中出现多个CompleteFeature时,会导致线程1处理了第一和第二步,此时线程切换到线程2,去处理其他事情,再切换回线程1时,拿到更新的结果数据不正确。
现在我就先放弃使用CompleteFeature,不知道有没有大佬遇到同样的问题?