上一篇博客中已经讲到了EasyUI datagrid分页前台显示是怎么实现的,这篇博客接着上面一篇博客讲解后台是怎么查询的。
其实用EasyUI来实现数据表格分页查询很简单。
第一步:写SQL语句调用数据库中的数据(在SSH中用hql语句),EasyUI datagrid只需要两个数据就可以了:(1)根据所给的页数和一页显示的所需要的条数查询出当前页所需要显示的数据。
/**分页查询账户信息**/
@Override
@SuppressWarnings("unchecked")
public List<SchoolShop_BankInfo> findByUserid(Integer userid, int pageNum,
int pageSize) {
ThStateUntil stateUntil = new ThStateUntil();
// TODO Auto-generated method stub
int pageNumN=(pageNum-1)*pageSize;
List<SchoolShop_BankInfo> lists =new ArrayList<SchoolShop_BankInfo>();
try {
lists =getSession().createQuery(
"from SchoolShop_BankInfo where userID= userid "
).setFirstResult(pageNumN)
.setMaxResults(pageSize)
.list();
//把数据库中的数字数据转换成汉字
for(SchoolShop_BankInfo s :lists){
s.setStatestr(stateUntil.getbankstate(s.getState()));
}
} catch (Exception e) {
e.printStackTrace();
}
return lists;
}
(2)数据库中所需查询的总条数。
/**分页查询-统计总共有多少条数据**/
public Integer findBankInfoTotal(Integer userid){
Query query=getSession().createQuery(
"select count(*) from SchoolShop_BankInfo where userID=? ")
.setParameter(0, userid);
return (new Integer(query.uniqueResult().toString()))
.intValue();
}
第二步:在
Action中调用后台查询出来的数据,传给前台。
//分页查询银行账号
public void findByuserIDpage() throws Exception{
Integer userid=1;
//获取easyui分页工具属性,page为当前页,rows为每页显示的行数
int page = Integer.valueOf(request.getParameter("page"));
int rows = Integer.valueOf(request.getParameter("rows"));
//根据分页查询出当前页数据。
List<SchoolShop_BankInfo> bankinfolist=bankAccountService.findByUserid(userid, page, rows);
//查询数据总条数。
Integer total=bankAccountService.findBankInfoTotal(userid);
//转换成json传给前台。
JSONObject jobj = new JSONObject();//
jobj.put("total", total);
jobj.put("rows", bankinfolist);
HttpServletResponse res = ServletActionContext.getResponse();
res.setContentType("text/html;charset=utf-8");
res.getWriter().print(jobj.toString());
}
只要懂原理做起来都不难,只有认真的经历过,什么都好说。