Rob*_*Rob 0 java prepared-statement
我最初定义了一份准备好的声明
prepstmt=conn.prepareStatement("...");
Run Code Online (Sandbox Code Playgroud)
然后在代码的各个部分使用它(通过函数)
prepstmt.setDouble(1,x);
prepstmt.execute();
Run Code Online (Sandbox Code Playgroud)
现在我有时会得到"声明关闭后不允许任何操作." 这是由于代码中其他地方的基础连接被关闭/超时/重置引起的.
现在显然我可以尝试/捕获错误并重置prepstmt然后,但这会使"重新运行"查询更加尴尬,所以想知道首先用类似的东西检查是多么"昂贵"
if (prepstmt.isClosed())
prepstmt=conn.prepareStatement("...");
prepstmt.setDouble(1,x);
prepstmt.execute();
Run Code Online (Sandbox Code Playgroud)
即在每次使用之前检查准备好的声明是否已关闭.猜测这一点必然会对性能产生一些影响,但不知道有多重要.估计对于我的特定应用程序,其关闭时间不到0.1%.
如果你PreparedStatements四处走动,甚至不知道它们是否关闭,你显然会遇到设计问题.听起来也有资源泄漏.
但是isClosed(),这不是一个昂贵的操作,它只返回跟踪语句状态的布尔值.这当然是特定于驱动程序的,但如果任何驱动程序以不太有效的方式实现它,我会感到惊讶.
| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |