2012-07-10 106 views

回答

-1

一句话:是的。只要确保不要在存储过程中嵌入事务逻辑。把它留给JDBC驱动程序或事务管理器。

有没有像试图为自己和看到的。我认为这比在这里提问更好。

0

它不会工作,connection.setAutoCommit(真),在这方面是一个Java对象。您不能在存储过程中使用它。

我们有一个名为自动提交一个SQL系统变量,如果我们把它作为我们编写存储过程,你的程序将自动提交什么都你试图执行的结果。

0

是它的工作原理。实际上,自动提交默认为开启。这chapter会给你一个想法,但你节省一些时间:

默认情况下,JDBC的自动提交功能上,这意味着它在执行每个SQL语句被提交。如果您的程序执行了多个SQL语句,那么可以通过关闭自动提交来实现小幅度的性能提升。

阅读CallableStatement的部分太:

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

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