如何给MySQL表加行锁

MySQL写的还真是挺棒的,在项目中经常见到
XXXDAO.lock(String id) // 锁住数据库中表的某一行数据,表的主键就是 id。相应的SQL实现:
select * from tableName where id=#id# for update;

通过上面的语句就可以实现加行锁,那什么时候解锁呢?解锁的情况的分为两种:

  1. 在事务中
    如果XXXDAO.lock()在事务之中实现,如下所示,释放锁的时间就是在这笔事务完成的时候,也就是数据库提交的时候

    transactionTemplate.execute(****) {
    // todo 业务逻辑
        XXXDAO.lock(String id)
    // todo 业务逻辑
    }
    
  2. 在非事务中,执行完该语句XXXDAO.lock(String id) 的时候就释放锁了。

说点什么

avatar
  Subscribe  
提醒

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部