PreparedStatment ps = null;
public void executeQueries(){
try{
ps = conn.prepareStatement(Query1);
// Execute Query1 here and do the processing.
ps = conn.prepareStatement(Query2);
// Execute Query2 here and do the processing.
//... more queries
}catch(){}
finally{
ps.close(); // At this point would the caching of queries in DB be lost?
}
}
В моем приложении я часто вызываю метод executeQueries()
.
У меня вопрос: если я закрою PreparedStatement
в блоке finally внутри метода (который я часто использую), удалит ли система базы данных кэширование? Если ДА, могу ли я сделать глобальный PreparedStatement
для всего приложения, поскольку в моем приложении есть множество JAVA CLASSES, которые запрашивают базу данных.
Спасибо!
Обновление: Вопрос был помечен как дубликат, но связанная ветка вообще не отвечает на мой вопрос. AFAIK, система баз данных хранит выполненные запросы в кеш-памяти. Он также хранит их план выполнения. Здесь PreparedStatement
лучше, чем Statement
. Однако я не совсем уверен, удаляется ли информация, относящаяся к запросу, после закрытия PreparedStatement
.