Java Connection.setAutoCommit(true)是否适用于SQL存储过程和函数?

Java Connection.setAutoCommit(true)是否适用于SQL存储过程和函数?,java,sql,oracle,jdbc,Java,Sql,Oracle,Jdbc,DB是Oracle 我想对SQL存储过程和函数使用Connection.setAutoCommit。行吗 对于调用过程,我使用CallableStatement一句话:yes。只需确保不在存储过程中嵌入事务逻辑。这一切都由JDBC驱动程序或事务管理器决定 没有什么比亲自尝试并亲眼目睹更好的了。我认为这比在这里提问更好。一句话:是的。只需确保不在存储过程中嵌入事务逻辑。这一切都由JDBC驱动程序或事务管理器决定 没有什么比亲自尝试并亲眼目睹更好的了。我认为这比在这里提问更好。它不会工作,conne

DB是Oracle

我想对SQL存储过程和函数使用Connection.setAutoCommit。行吗


对于调用过程,我使用CallableStatement

一句话:yes。只需确保不在存储过程中嵌入事务逻辑。这一切都由JDBC驱动程序或事务管理器决定


没有什么比亲自尝试并亲眼目睹更好的了。我认为这比在这里提问更好。

一句话:是的。只需确保不在存储过程中嵌入事务逻辑。这一切都由JDBC驱动程序或事务管理器决定


没有什么比亲自尝试并亲眼目睹更好的了。我认为这比在这里提问更好。

它不会工作,connection.setAutoCommittrue,在这个连接中是一个Java对象。不能在存储过程中使用相同的方法


我们有一个名为autocommit的sql系统变量,如果在编写存储过程时将其设置为on,则您的过程将自动提交您试图执行的结果

connection.setAutoCommittrue不起作用,在这个连接中是一个Java对象。不能在存储过程中使用相同的方法


我们有一个名为autocommit的sql系统变量,如果在编写存储过程时将其设置为on,则您的过程将自动提交您试图执行的结果

是的,它很有效。实际上,默认情况下自动提交处于启用状态。这将给你一个想法,但为了节省你一些时间:

默认情况下,JDBC的自动提交功能处于启用状态,这意味着每个SQL语句在执行时都会提交。如果程序执行多个SQL语句,则可以通过关闭自动提交来实现性能的小幅度提高

也请阅读CallableStatement部分:

您可能还记得,CallableStatement对象用于执行数据库存储过程。我将CallableStatement对象保存到最后,因为它们是所有JDBCSQL执行接口中执行速度最慢的。这听起来可能违反直觉,因为人们普遍认为调用存储过程比使用SQL快,但事实并非如此。给定一个简单的SQL语句和一个完成相同任务的存储过程调用,简单的SQL语句总是执行得更快。为什么?因为对于存储过程,您不仅有执行SQL语句所需的时间,而且还有处理过程调用本身开销所需的时间


我认为它将帮助您做出有关应用程序性能的决定。

是的,它可以工作。实际上,默认情况下自动提交处于启用状态。这将给你一个想法,但为了节省你一些时间:

默认情况下,JDBC的自动提交功能处于启用状态,这意味着每个SQL语句在执行时都会提交。如果程序执行多个SQL语句,则可以通过关闭自动提交来实现性能的小幅度提高

也请阅读CallableStatement部分:

您可能还记得,CallableStatement对象用于执行数据库存储过程。我将CallableStatement对象保存到最后,因为它们是所有JDBCSQL执行接口中执行速度最慢的。这听起来可能违反直觉,因为人们普遍认为调用存储过程比使用SQL快,但事实并非如此。给定一个简单的SQL语句和一个完成相同任务的存储过程调用,简单的SQL语句总是执行得更快。为什么?因为对于存储过程,您不仅有执行SQL语句所需的时间,而且还有处理过程调用本身开销所需的时间

我认为它将帮助您做出有关应用程序性能的决定