DAO.java
public interface DAO {
/**
* 1.獲取所要顯示的分頁(yè)數(shù)據(jù)(一般以list形式來(lái)存放)
* 2.獲取記錄的總數(shù)(計(jì)算總頁(yè)數(shù))
* 3.需要定義一個(gè)返回類型,獲取兩個(gè)參數(shù)
* @param
* @param entityClass 實(shí)體類
* @param firstindex 開(kāi)始索引
* @param maxresult 需要獲取記錄數(shù)
* @return
*/
public QueryResult getScrollData(Class entityClass, int firstindex, int maxresult);}
QueryResult.java(需要定義一個(gè)返回類型,獲取兩個(gè)參數(shù))
package com.itcast.bean;
import java.util.List;
public class QueryResult {
private List resultlist;
private long totalrecord;
public List getResultlist(){
return resultlist;
}
public void setResultlist(List resultlist) {
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 QueryResult getScrollData(Class entityClass, int firstindex, int maxresult) {
//創(chuàng)建查詢對(duì)象
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 getEntityName(Class entityClass){
String entityname = entityClass.getSimpleName();
Entity entity = entityClass.getAnnotation(Entity.class);
if(entity.name()!=null && !"".equals(entity.name())){
entityname = entity.name();
}
return entityname;
}
}
public interface DAO {
/**
* 1.獲取所要顯示的分頁(yè)數(shù)據(jù)(一般以list形式來(lái)存放)
* 2.獲取記錄的總數(shù)(計(jì)算總頁(yè)數(shù))
* 3.需要定義一個(gè)返回類型,獲取兩個(gè)參數(shù)
* @param
* @param entityClass 實(shí)體類
* @param firstindex 開(kāi)始索引
* @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)建查詢對(duì)象
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;
}
}

