gpt4 book ai didi

java - 对非结果集结果查询重用语句

转载 作者:搜寻专家 更新时间:2023-10-30 22:17:25 24 4
gpt4 key购买 nike

虽然已经讨论了很多次,但要在尽可能短的范围内关闭数据库资源。我想知道是否可以重用不返回任何结果集的语句对象。例如这样的代码,

 Statement st = con.getStatement();
st.execute(TABLE1_DELETE_Query);
st.execute(TABLE2_DELETE_Query);
st.close();

我在 SF 上查看了类似的问题,但我找不到可以回答我的问题。如果已回答,请仅提及引用。

谢谢

最佳答案

Statements 的生命周期应该保持在短期内,但是重复使用它们是完全没问题的。

单个未关闭的 ResultSet 可能会导致应用程序挂起,但是您可以拥有 100 多个未关闭的语句而不会出现问题。通常,一个语句将保留与数据库连接关联的非常小的内存片段,但它可以保留多个结果集,如 getMoreResults() 方法返回的结果集, getWarnings() 方法的警告。

在一个方法中多次重复使用一个语句然后关闭它是一种很好的做法,因为它可以避免不必要地创建额外的语句。创建声明并保留它以防万一需要它是不好的做法。

PreparedStatements 旨在被重用,但最好将它们保持在单一方法的范围内,因为这样可以保证它们具有短期生命周期。

关于java - 对非结果集结果查询重用语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9665497/

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