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

来源:互联网 发布:java布尔类型的题目 编辑:程序博客网 时间:2024/06/03 11:56


读取表格数据中经常会用到分页功能,前端传入页码,每页显示条数,从数据库中取出相应条数据,返回到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;}



0 0
原创粉丝点击