CallableStatement
重用的实例通常被认为是一种好习惯(请查看此处)。
但是在创建. 时CallableStatement
,该语句(据我所知)绑定到特定的Connection
. 所以我们通常会这样做:
Connection con = pool.getConnection();
CallableStatement st = con.prepareCall("{ some stmt; }");
st.executeQuery();
st.close();
con.close();
根据我的检查,以下内容不会执行查询:
Connection con = pool.getConnection();
CallableStatement st = con.prepareCall("{ some stmt; }");
con.close();
con = pool.getConnection(); // possibly another new connection, different than the one used to create the CallableStatement instance
st.executeQuery();
st.close();
我的问题是:如果我想重用所有CallableStatement
实例,但另一方面仍然能够获得新连接并关闭旧连接(并非总是打开相同的连接),我该怎么办?