CallableStatement и PreparedStatement предварительно скомпилированы. Делаются ли они по отношению к соединению? Я имею в виду, давайте предположим, что в пуле соединений сервера приложений находится около 100 объектов соединения. Есть класс, который использует Callable и PreparedStatements. Допустим, метод, который используется для этого:
public void invokePreparedAndCallableStatements(){
//Fetches connection from pool
Connection con = getConnectionFromPool();
CallableStatement cs = con.prepareCall(.....);
cs.register...(...);
cs.execute();
...
...
PreparedStatement st = con.prepareStatement(...);
st.setXXX(..);
st.executeUpdate();
...
}
Теперь, когда метод вызывается в первый раз, соединение извлекается из пула и обрабатывается запрос. Операторы Callable и Prepared компилируются. Когда метод вызывается еще 99 раз, каждый раз, когда из пула извлекается другое соединение, то - будут ли операторы выполняться для каждого соединения?
Каков будет наиболее оптимальный способ использования операторов в этом контексте? Я не могу сделать их (con.prepareCall() или con.prepareStatement()) статическими, потому что соединение не является статическим.