DAO.java
public interface DAO {
/**
* 1.獲取所要顯示的分頁數(shù)據(jù)(一般以list形式來存放)
* 2.獲取記錄的總數(shù)(計(jì)算總頁數(shù))
* 3.需要定義一個(gè)返回類型,獲取兩個(gè)參數(shù)
* @param
* @param entityClass 實(shí)體類
* @param firstindex 開始索引
* @param maxresult 需要獲取記錄數(shù)
* @return
*/
public
QueryResult.java(需要定義一個(gè)返回類型,獲取兩個(gè)參數(shù))
package com.itcast.bean;
import java.util.List;
public class QueryResult
private List
private long totalrecord;
public List
return resultlist;
}
public void setResultlist(List
this.resultlist = resultlist;
}
public long getTotalrecord() {
return totalrecord;
}
public void setTotalrecord(long totalrecord) {
this.totalrecord = totalrecord;
}
}
DaoSupport.java
import com.itcast.bean.QueryResult;
public abstract class DaoSupport implements DAO {
@SuppressWarnings("unchecked")
@Override
@Transactional(readOnly=true,propagation=Propagation.NOT_SUPPORTED)
public
//創(chuàng)建查詢對象
QueryResult qr = new QueryResult
//獲取實(shí)體名稱
String entityname = getEntityName(entityClass);
Query query = em.createQuery("select o from "+entityname+" o");
query.setFirstResult(firstindex).setMaxResults(maxresult);
qr.setResultlist(query.getResultList());
query = em.createQuery("select count(o) from "+entityname+" o");
qr.setTotalrecord((Long)query.getSingleResult());
return qr;
}
/**
* 獲取實(shí)體名稱
* @param
* @param entityClass實(shí)體類
* @return
*/
protected
String entityname = entityClass.getSimpleName();
Entity entity = entityClass.getAnnotation(Entity.class);
if(entity.name()!=null && !"".equals(entity.name())){
entityname = entity.name();
}
return entityname;
}
}
相關(guān)推薦:全國計(jì)算機(jī)等級考試將于3月28日至4月1日舉行北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |