我使用jdbi inTransaction()函数将sql查询作为事务执行。我想知道内部如何使用锁定机制/使用哪种类型的锁定机制。此外,是在事务期间锁定整个表,还是只锁定必须更新的记录?
发布于 2012-05-02 00:12:42
事务纯粹是在数据库级别进行的。除非被覆盖,否则它将使用数据库/连接的默认隔离级别。
如果您使用的是inTransaction(...)方法接受回调,有一种形式的函数允许您设置隔离级别:
<ReturnType> ReturnType inTransaction(TransactionIsolationLevel level,
TransactionCallback<ReturnType> callback)-Brian
发布于 2011-11-18 16:03:11
它取决于事务隔离级别。Isolation
发布于 2017-08-18 18:16:23
问题的第二部分,"...is整个表在事务期间锁定还是只更新记录?“,这取决于所使用的数据库管理系统。
例如,下面是关于表级和行级锁定的MySQL文档:https://dev.mysql.com/doc/refman/5.7/en/internal-locking.html
https://stackoverflow.com/questions/8158212
复制相似问题