我們可以通過完善HibernateUtil來實現更多更能。


















































































HQL(Hibernate Query Language)
面向對象的查詢語言,與SQL不同,HQL中的對象名是區分大小寫的(除了JAVA類和屬性其他部分不區分大小寫);HQL中查的是對象而不是表,并且支持多態;
HQL主要通過Query接口來操作,Query的創建方式:
Query q = session.createQuery(hql);
from Person
from User user where user.name =: name
from User user where user.name =: name and user.birthday<:birthday
Criteria
Criteria是一種比HQL更面向對象的查詢方式。Criteria的創建方式:
Criteria crit = session.createCriteria(DomainClass.class);
簡單屬性條件如: criteria.add(Restrictions.eq(propertyName,value));
criteria.add(Restrictions.eqProperty(propertyName,otherPropertyName));
實例操作
新建一QueryTest類







































Oracle中 實體類或屬性名與數據庫關鍵字沖突問題
以上是User.hbm.xml原來的代碼













我們可以設置表名為tuser。
如果tuser已經存在,給表明加一對反引號,`user` 即可。不過最好還是只改表明。
如果是字段名(屬性名)和關鍵字相沖突,其處理方法也是一樣的!
HQL的命名參數



為解決這個問題,我們可以使用HQL的命名參數來解決,代碼如下:



Query接口的兩個方法實現分頁查詢

