java - LOCK TABLE 和 try-catch block

标签 java mysql locking spring-jdbc

在使用@Transactional注释的方法中,LOCK TABLE语句应该在try block 内部还是之前执行?

选项 1:

jdbcTemplate.execute(SQL_LOCK);

try {
    //Some work
} finally {
    jdbcTemplate.execute(SQL_UNLOCK);
}

选项 2:

try {
    jdbcTemplate.execute(SQL_LOCK);

    //Some work
} finally {
    jdbcTemplate.execute(SQL_UNLOCK);
}

谢谢, 米凯尔

最佳答案

选项 2 似乎更可取,因为即使在执行 SQL_LOCK 期间抛出异常,它也能保证执行 SQL_UNLOCK 语句。

关于java - LOCK TABLE 和 try-catch block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23535285/

相关文章:

mysql - SQL 数据库关系和 VB.Net 应用程序

java - 是否 hibernate 分离对象的默认乐观锁定?

java - 什么锁是不可重入的,即如果在同一线程中获取而没有事先释放则阻塞?

java - @JsonAny(S|G}etter 从 1.7.4 更改为 1.9.3?

java - Spring mvc编码和 "???"符号而不是html中的utf-8符号

java - 从 JFrame 类调用的终端类由于某种原因没有用户输入

mysql - unix_timestamp 未返回预期输出

php - 使用PHP进行产品搜索

c# - 对数据库的多次访问。如何防止不同的线程修改相同的数据?

java - 是否可以从maven中的一个项目中挑选出依赖项?