gpt4 book ai didi

java - setAutocommit(true) 进一步解释

转载 作者:行者123 更新时间:2023-11-29 03:33:38 26 4
gpt4 key购买 nike

我遇到过this甲骨文java教程。作为该主题的初学者,我无法理解为什么需要在事务结束时设置 con.setAutocommit(true);

这是神谕的解释:

The statement con.setAutoCommit(true); enables auto-commit mode, whichmeans that each statement is once again committed automatically whenit is completed. Then, you are back to the default state where you donot have to call the method commit yourself. It is advisable todisable the auto-commit mode only during the transaction mode. Thisway, you avoid holding database locks for multiple statements, whichincreases the likelihood of conflicts with other users.

您能换句话说吗?尤其是这一点:

This way, you avoid holding database locks for multiple statements,which increases the likelihood of conflicts with other users.

“为多个语句持有数据库锁”是什么意思?

提前致谢。

最佳答案

数据库必须执行行级或表级锁定(基于 MySQL 中的数据库引擎)来处理事务。如果您保持 auto-commit 模式 off 并继续执行语句,这些锁将不会被释放,直到您提交事务。根据类型,其他事务将无法更新当前锁定的行/表。 setAutocommit(true) 基本上提交当前事务,释放当前持有的锁,并启用auto-commit,即,直到进一步需要,执行并提交每个单独的语句.

行级锁保护参与事务的各个行 (InnoDB)。表级锁防止并发访问整个表 (MyIsam)。

关于java - setAutocommit(true) 进一步解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16652111/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com