1.更新
如用户A、B都看到数据库中的数据为6,然后A将值修改为3,但是B这时使用的数据还是6,所以就会出现问题。
这种情况下使用乐观锁。乐观锁一般通过version字段或者修改时间来实现
2.插入
一般通过数据库表中列的唯一性来保证
alter table 表名
add unique key 唯一键名称 (列名1,列名2,列名3)
举例
alter table ad_msg_task
add unique key unique_task (rule_id,execute_time,status)
这样的话在进行插入的时候,如果rule_id,execute_time,status的组合有重复的,则会抛出MySQLIntegrityConstraintViolationException异常,此异常为RuntimeException(用的是Mysql数据库)
这样的话就可以保证只插入一次