溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

releaseSession如何在JSP中使用

發(fā)布時(shí)間:2020-11-26 15:39:02 來(lái)源:億速云 閱讀:113 作者:Leah 欄目:編程語(yǔ)言

releaseSession如何在JSP中使用?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

JSP 開(kāi)發(fā)之 releaseSession的實(shí)例詳解

Hibernate可以實(shí)現(xiàn)分頁(yè)查詢,昨天試了一下,分頁(yè)效果不錯(cuò)。但是發(fā)現(xiàn)了一個(gè)問(wèn)題,就是當(dāng)請(qǐng)求超過(guò)20次的時(shí)候頁(yè)面就會(huì)卡死。經(jīng)檢查,是卡在分頁(yè)查詢這一塊。

應(yīng)用程序采用struts2 + spring2 + hibernate3架構(gòu)

連接池配置使用的是c3p0, 最大池大小為20, 很顯然是連接池耗盡導(dǎo)致的?!≡黾舆B接池大小只是飲鴆止渴,總還有耗盡的時(shí)候,必須找到根本原因。

Dao類的分頁(yè)查詢方法如下:

java 代碼 

public List getTopics(int perPageStartNum, int perPageShowNum, long f_id) { 
  Query query = getSession().createQuery("from Topic where forumId=" + f_id); 
  query.setFirstResult(perPageStartNum); 
  query.setMaxResults(perPageShowNum); 
  return query.list(); 
}

我嘗試在獲得list之后,使用getSession().close()關(guān)閉,沒(méi)有效果。

早上來(lái)上班繼續(xù)調(diào)試,問(wèn)題依舊。仔細(xì)想想可能還是對(duì)于spring中集成的操作hibernate session 的方法不熟悉。

查閱Spring API:

geSession()是org.springframework.orm.hibernate3.support.HibernateDaoSupport 中的一個(gè)方法,

它可以從當(dāng)前事務(wù)或者一個(gè)新的事務(wù)獲得一個(gè)hibernate session.

通常使用releaseSession(org.hibernate.Session)方法與getSession()配合。

如果沒(méi)有綁定線程,releaseSession關(guān)閉由這個(gè)DAO的SessionFactory創(chuàng)建的Hibernate Session。 

修改后的代碼為:

public List getTopics(int perPageStartNum, int perPageShowNum, long f_id) { 
  Session session = getSession(); 
 
  List list = session.createQuery("from Topic where forumId=" + f_id) 
      .setFirstResult(perPageStartNum) 
      .setMaxResults(perPageShowNum) 
      .list(); 
 
  releaseSession(session); 
 
  return list; 
}

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI