gpt4 book ai didi

JavaPreparedStatements isClosed 性能

转载 作者:行者123 更新时间:2023-12-01 16:52:54 26 4
gpt4 key购买 nike

我最初通过定义一个准备好的语句

          prepstmt=conn.prepareStatement("...");

然后在代码的各个部分使用它(通过函数)

   prepstmt.setDouble(1,x);
prepstmt.execute();

现在我有时会收到“语句关闭后不允许进行任何操作。”这是由代码中其他地方的底层连接关闭/超时/重置引起的。

现在显然我可以尝试/捕获错误并重置 prepstmt,但这会使“重新运行”查询变得更加尴尬,所以想知道首先使用类似的东西进行检查是多么“昂贵”

   if (prepstmt.isClosed())
prepstmt=conn.prepareStatement("...");
prepstmt.setDouble(1,x);
prepstmt.execute();

即在每次使用准备好的语句之前检查它是否已关闭。猜测这一定会对性能产生一些影响,但不知道影响有多大。据估计,对于我的特定应用程序,其关闭时间不到 0.1%。

最佳答案

如果您传递 PreparedStatements 并且甚至不知道它们是否已关闭,那么您显然存在设计问题。听起来也可能存在资源泄漏。

然而,isClosed() 并不是一个昂贵的操作,它只是返回跟踪语句状态的 boolean 值。这当然是特定于驱动程序的,但如果任何驱动程序以不太有效的方式实现它,我会感到惊讶。

关于JavaPreparedStatements isClosed 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36507710/

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