成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Hibernate中Session方法介紹

開發 后端
本文向您介紹Hibernate中的Session方法,并比較Hibernate 2和Hibernate 3中Session方法的區別。

查詢系統往往是一個系統性能表現的重要的方面,相對于刪除和更新來說,查詢的機制在很大程度上決定了一個系統的性能。

Hibernate2中,Session方法接口提供了如下的辦法完成批量數據的查詢(Session.locad單一數據的查詢)

List Session.find(…..)
Iterator Session.iterator(……)

Hibernate3中上述接口已經從Session方法中廢除,統一由Query接口提供,分別對應如下的辦法:

List session.createQuery().list()
Iterator session.createQuery.iterator()

從實現機制上,兩者沒什么分別

Find/iterator方法可以根據查詢條件返回符合條件的實體集。如下:

String sql=”from Tuser user where user.age>?”;
List ls = session.find(sql,new Integer(14),Hibernate.INTEGER);
int len = ls.size();
for(int i=0;i
Tuser user = (Tuser)ls.get(i);
System.out.println(“Username: ” + user.getName());
}

 

String sql=”from Tuser user where user.age>?”;
Iterator iterator = session.iterator(sql,new Integer(14),Hibernate.INTEGER);
While(iterator.next())
Tuser user = (Tuser)iterator.next(i);
System.out.println(“Username: ” + user.getName());
}

兩者實現了統一的功能,但是大家在執行時看看他們輸出的SQL語句,會發現有很多不同。兩者的執行性能是不一樣的,但是這又與Hibernate提供的緩存機制有很大的關系。

Find方法無法利用利用緩存來提供其執行性能,但iterator可以利用緩存機制來達到提高查詢的性能。另外在內存使用方面,find方法是一次性查詢處所有的結果,如果查詢結果是海量的數據,那么就有可能出現內存溢出。但可以利用iterator和evict方法結合使用來將內存的消耗保持在一個可以接受的范圍:

String sql=”from Tuser user where user.age>?”;
Iterator iterator = session.iterator(sql,new Integer(14),Hibernate.INTEGER);
While(iterator.next())
Tuser user = (Tuser)iterator.next(i);
session.evict(user); //從一級緩存中清除

二級緩存可以設置最大的緩存量,達到峰值時自動清除舊緩存數據,但我們這里可以通過編碼指定將對象從二級緩存中清除,有助于保存緩存的有效性

sessionFactory.evict(Tuser.class,user.getID());
System.out.println(“Username: ” + user.getName());
}

上面的方法只是解決了部分的問題,由于JVM的異步的內存回收機制,無效的對象還會不斷地在內存中積累等待回收。如果數據量較大,會頻繁激發JVM回收,造成性能急劇下降,因此實際開發中,建議采用SQL語句或者存儲過程實現。

【編輯推薦】

  1. 關于Hibernate你必須知道的六個方面
  2. Hibernate入門方法之手低眼高
  3. 淺談Struts+Hibernate+Spring的整合方法
  4. Hibernate中Session.find/iterator方法
  5. 淺談Struts分頁中的Hibernate如何實現
責任編輯:張攀 來源: 新浪博客
相關推薦

2009-09-25 09:46:03

Hibernate s

2009-06-26 16:34:50

delete()方法Hibernate S

2009-06-26 16:33:09

saveOrUpdatHibernate

2009-09-27 14:41:05

Hibernate I

2009-09-29 16:04:29

Hibernate S

2009-09-24 17:24:20

Hibernate S

2009-09-23 17:18:16

Hibernate S

2009-09-25 13:51:13

Hibernate S

2009-09-25 10:53:40

Hibernate S

2009-09-22 10:09:21

Hibernate S

2009-09-23 17:03:08

Hibernate S

2009-06-18 13:42:48

Hibernate s

2009-09-24 13:25:58

Hibernate m

2011-06-16 10:48:33

session

2009-09-22 09:27:29

Hibernate P

2009-09-28 13:49:44

Hibernate Q

2009-09-25 13:55:05

Hibernate使用

2009-09-23 17:41:05

Hibernate事務

2009-09-28 10:24:58

Hibernate基礎

2009-06-17 11:18:02

Hibernate延遲
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产在线精品一区二区 | 日韩在线免费视频 | 久久精品视频在线观看 | 日韩欧美在 | 欧美午夜精品 | 超碰免费在 | 精品成人 | 亚洲精品免费在线 | 国产一区二区在线免费视频 | 成人二区 | 国产高清在线精品 | 久久免费精品视频 | 1204国产成人精品视频 | 在线观看视频中文字幕 | 在线第一页 | 九九导航 | 久久亚洲综合 | 国产精品亚洲一区 | 国产欧美性成人精品午夜 | 中文字幕一区二区三区四区五区 | 日本午夜免费福利视频 | 99tv成人影院 | 国产www在线 | 狠狠干网站 | 成人三级网址 | 欧美精品欧美精品系列 | 91一区二区三区 | 国产欧美日韩 | 另类视频区 | 日韩欧美专区 | 淫片专区| 手机av网 | 日韩在线不卡 | 国产综合精品 | 日韩欧美在线不卡 | 久久狠狠 | 国产精品视频一区二区三区四区国 | 国产精品成人在线播放 | 91美女在线观看 | 青草福利| 男人天堂色 |