分頁:
其實標準查詢的分頁很簡單,在Criteria中提供瞭兩個方法,setFirstResult方法和setMaxResults,一個是數據的開始位置0表示第一條記錄,一個是返回的記錄數。
Java代碼
public void searchByPropertys() {
Session session = this.getSession();
Criteria crit = session.createCriteria(Conft.class);
crit.setFirstResult(0);
crit.setMaxResults(10);
List<Conft> list = crit.list();
for(Conft conft : list){
System.out.println(conft.getId());
}
}
這樣會返回數據庫前十條記錄!
返回一條記錄:
Criteria接口的uniqueResult方法返回一個Object對象,如果沒有查到數據則返回null。
Java代碼
public void searchByPropertys() {
Session session = this.getSession();
Criteria crit = session.createCriteria(Conft.class);
crit.add(Restrictions.eq("id", 2)); // =
Conft conft = (Conft)crit.uniqueResult();
System.out.println(conft.getId());
}
如果調用時返回的不是一條記錄,會爆出異常!
排序:
Oder對象的asc和desc靜態方法能滿足這個需求
Java代碼
public void searchByPropertys() {
Session session = this.getSession();
Criteria crit = session.createCriteria(Conft.class);
crit.addOrder(Order.desc("id"));
List<Conft> list = crit.list();
for(Conft conft : list){
System.out.println(conft.getId());
}
}
作者:dyllove98