您的位置:首页 > 编程语言 > Java开发

spring roo 开发meavn项目(三)分页读取数据示例

2016-07-22 15:21 495 查看
读取表格数据中经常会用到分页功能,前端传入页码,每页显示条数,从数据库中取出相应条数据,返回到service层,进行处理。

这里新建了一个数据分页的类,用于存储分页相关参数和查询出的数据

package com.collegepatent.util;

import java.util.List;
/**
* 分页专用类
*
* @author xc
*
*/
public class PageUtil<T> {
private int pageSize;
private int pageNumber;
private int pageTotal;
private List<T>  rows;

public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getPageNumber() {
return pageNumber;
}
public void setPageNumber(int pageNumber) {
this.pageNumber = pageNumber;
}
public int getPageTotal() {
return pageTotal;
}
public void setPageTotal(int pageTotal) {
this.pageTotal = pageTotal;
}
public List<T> getRows() {
return rows;
}
public void setRows(List<T> rows) {
this.rows = rows;
}

}


在DAO层查询数据,这里以Inventor类的查询为例

public static PageUtil searchInventor(String universityid, int pageSize, int pageNumber) {
String sqlstr = " ";
String sqlcount = "SELECT count(*) ";
String sql = "SELECT Inventor ";
sqlstr = "from Inventor Inventor where Inventor.university='" + universityid + "'";
PageUtil pu = new PageUtil();
pu.setPageSize(pageSize);
pu.setPageNumber(pageNumber);
int total = entityManager().createQuery(sqlcount + sqlstr, Long.class).getSingleResult().intValue();
TypedQuery<Inventor> inventorQuery = entityManager().createQuery(sql + sqlstr, Inventor.class);
inventorQuery.setFirstResult(pu.getPageSize() * (pu.getPageNumber() - 1)).setMaxResults(pu.getPageSize());
pu.setPageTotal(total);
pu.setRows(inventorQuery.getResultList());
return pu;
}

返回结果导service层后,通过PageUtil取出数据进行处理后,将组装的map传回前前端
/**
* description: 根据条件查询发明人
*
* @author xc
*/
public Map<String, Object> searchInventor(String universityid, int pageSize, int pageNumber) {

PageUtil<Inventor> pu = Inventor.searchInventor(universityid, pageSize, pageNumber);
Map<String, Object> map = new HashMap<String, Object>();
SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd");
List<Map<String, Object>> inventorlist = new ArrayList<Map<String, Object>>();
for (Inventor inventor : pu.getRows()) {

Map<String, Object> inventorMap = new HashMap<String, Object>();
inventorMap.put("inventorid", inventor.getInventorid().toString());
inventorMap.put("jobnumber",inventor.getJobnumber());
inventorMap.put("namecn", inventor.getNamecn());
inventorMap.put("nameen", inventor.getNameen());
inventorMap.put("addresscn", inventor.getAddresscn());
inventorMap.put("registertime", dateFormatter.format(inventor.getRegistertime()));
inventorlist.add(inventorMap);

}
map.put("rows", inventorlist);
map.put("total", pu.getPageTotal());
return map;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: