在"使用预处理语句"的教程中指出,它们应该始终被关闭。假设我有一个函数。
getPrice() {
}
我希望这个方法能够被每秒多次调用。这个方法每次调用都需要打开和关闭PreparedStatement吗?这似乎会带来很大的开销。
getPrice() {
}
我希望这个方法能够被每秒多次调用。这个方法每次调用都需要打开和关闭PreparedStatement吗?这似乎会带来很大的开销。
首先,PreparedStatement
永远不会被打开。它只是一个预处理的 Statement
被执行。该语句被发送到执行经过 PreparedStatement
编译的 SQL 语句的 RDBMS。连接到 SQL 语句应在查询 SQL 期间保持打开状态,并在不需要其他 RDMS 调用时关闭。
您可以按需发送许多 Statement
/PreparedStatement
,但必须确保在完成使用后最终关闭其 ResultSet
和 PreparedStatement
,然后关闭 RDBMS 连接。
正如教程中的示例所示,您应该在执行完所有查询后关闭它。
一旦语句被关闭,关系型数据库管理系统可能会释放与您的语句相关的所有资源。因此,如果要进一步使用它,您需要重新准备完全相同的语句。
是的..如果您创建了准备好的语句n次,那么没有任何问题,因为您将在所有位置使用相同的语句。在这里不需要进行任何性能观察。
谢谢