5

我使用 jdbi inTransaction() 函数将 sql 查询作为事务执行。我想知道内部如何/使用什么类型的锁定机制。另外,在事务期间是整个表被锁定还是只是必须更新的记录?

4

3 回答 3

9

事务纯粹是在数据库级别。除非被覆盖,否则它将使用数据库/连接的默认隔离级别。

如果您使用接受回调的 inTransaction(...) 方法,则该函数的一种形式允许您设置隔离级别:

<ReturnType> ReturnType inTransaction(TransactionIsolationLevel level,
                                      TransactionCallback<ReturnType> callback)

-布赖恩

于 2012-05-01T16:12:42.417 回答
1

这取决于事务隔离级别。隔离

于 2011-11-18T08:03:11.320 回答
0

您问题的第二部分,“......是整个表在事务期间锁定还是只是必须更新的记录?”,取决于所使用的 DBMS。

例如,这里是用于表级和行级锁定的 MySQL 文档: https ://dev.mysql.com/doc/refman/5.7/en/internal-locking.html

于 2017-08-18T10:16:22.650 回答