我想知道當我在hibernate中使用c3p0連接池時是否應該使用session.close()
?或c3p0在一定的時間間隔後自動關閉?我是否需要通過打開會話會話?
SessionFactory factory = HibernateUtil.getSessionFactory();
Session session=factory.openSession();
因爲在下面的教程中它不會關閉會話。
什麼是正確的方法是什麼?
編輯:
這將是我的代碼
@SuppressWarnings("unchecked")
@Override
public JSONObject getUserDetails(int id) {
long lStartTime = new Date().getTime();
JSONObject obj = new JSONObject();
try(Session session=factory.openSession()) {
Employee emp=(Employee)session.load(Employee.class,id);
if(emp != null) {
obj.put("id", emp.getId());
obj.put("name", emp.getName());
}
long lEndTime = new Date().getTime();
log.info("[ Personal Details ]Time elapsed For Fetching :"+(lEndTime - lStartTime));
} catch (Exception e) {
// TODO: handle exception
}
}
謝謝艾略特。但是,我的問題是我應該在代碼中明確寫入「session.close()」嗎? – Syed
如果你不使用'try-with-resources',那麼**是**你應該明確地*在'finally''塊中寫'session,close()'。 –
感謝您的更新。但究竟是什麼使差異? – Syed