自动提交虚假模式java

时间:2009-10-07 05:38:00

标签: java jdbc

我不太确定java JDBC的自动提交模式,我正在建立一个自动提交模式设置为false的连接。之后我在数据库上激活了一个select查询,工作正常,我的印象是必须只为insert,update,delete语句调用commit。

现在我需要为Select查询提交连接吗?如果不是,那个表会被锁定用于其他交易吗?

谢谢, 罗希特夏尔。

2 个答案:

答案 0 :(得分:1)

这取决于您的隔离级别。如果您使用READ COMMITTED,则SELECT仅在您指定SELECT FOR UPDATE时才会创建锁定。如果您使用REPEATABLE READ或更高版本,则每个SELECT都可以创建一个锁(取决于您的数据库模型)。

答案 1 :(得分:-2)

  

我不太确定java JDBC的自动提交模式,我正在建立一个自动提交模式设置为false的连接。之后我在数据库上激活了一个select查询,工作正常,我的印象是必须只为insert,update,delete语句调用commit。

这取决于您的申请。如果有简单的更新,插入,删除,您可以离开 autocommit = on 。一般来说,它建议不要自动提交。该配置为您提供了更大的灵活性和应用能力。您可以使用复杂的交易,您可以决定交易何时开始以及何时结束。

  

现在我需要为Select查询提交连接吗?如果不是,那个表会被锁定用于其他交易吗?

不,选择语句不会开始事务(插入,更新,删除),因此在选择语句后不需要提交/回滚。有一个特殊情况选择锁定所选行并需要事务 - with for update clause