zoukankan      html  css  js  c++  java
  • Spring Data Jpa 实现分页(Spring MVC+easyui)

    spring data jpa很好的对dao层进行了封装,这篇文章主要来写的是实现easyui datagird数据分页,由于各个UI参数不大一样,所以如果使用的是其他UI,得稍作修改。需要说明的是我的代码是在spring mvc框架下的部分代码,部分结构的代码为给出,只给出关键代码。

    首先,easy ui向服务端发送请求时,会自动返回4个参数(page,rows,order,sort),先写一个PageContent类:

    package module.system.entity;
    
    import javax.persistence.Entity;
    import javax.persistence.Id;
    
    public class PageContent {
    	
        private String page;
        private String rows;
        private String sort;
        private String order;
    
    	public String getPage() {
    		return page;
    	}
    	public void setPage(String page) {
    		this.page = page;
    	}
    	public String getRows() {
    		return rows;
    	}
    	public void setRows(String rows) {
    		this.rows = rows;
    	}
    	public String getSort() {
    		return sort;
    	}
    	public void setSort(String sort) {
    		this.sort = sort;
    	}
    	public String getOrder() {
    		return order;
    	}
    	public void setOrder(String order) {
    		this.order = order;
    	}
        
    }
    

    下面是Dao层,Data是一个实体类,不用关心,换成你的即可:

    import module.app.entity.Data;
    import module.system.entity.Department;
    
    import org.springframework.data.domain.Page;
    import org.springframework.data.domain.Pageable;
    import org.springframework.data.jpa.repository.JpaRepository;
    
    public interface DataDao extends JpaRepository<Data,Integer> {
    	public Page<Data> findAll(Pageable pageable);
    }


    下面是controller的部分代码,客户端发来的四个参数会自动赋给page对象:

    @RequestMapping(value = "/getAll.do", method = RequestMethod.POST)
    	@ResponseBody  //此注解表明返回值跳过视图处理部分,直接写入 http response body中
    	public Map getAll(HttpServletRequest request,PageContent page) {
    		
    		Sort sort = null;
    		if(page.getOrder().equals("asc")){
    			 sort = new Sort(Direction.ASC, page.getSort());
    		}else if(page.getOrder().equals("desc")){
    			 sort = new Sort(Direction.DESC, page.getSort());
    		}
    		int pageNum = Integer.parseInt(page.getPage())-1;
    		int rows = Integer.parseInt(page.getRows());
    		Pageable pageable = new PageRequest(pageNum,rows,sort);
    		Page<Data> list = dataService.findAll(pageable);
    			
    		Map map = new HashMap();
    		map.put("total", list.getTotalElements());//数据总数
    		map.put("rows",list.getContent());//分页应该显示的数据
    		//在控制台打印
    		net.sf.json.JSONArray jsonArray = net.sf.json.JSONArray.fromObject(map);
    		System.out.println(jsonArray.toString());
    		return map;
    	}
    由于我的spring MVC框架整合了Json,所以直接返回这个map到客户端会自动转存json数据






    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    odoo邮箱系统
    运行odoo13,走的odoo12的数据库
    字段`in_group_69`不存在
    odoo库存
    Codeforces 1430E
    AtCoder "Regular Contest 102" D
    AtCoder "Grand Contest 041" E
    ZJNU 2471
    ZJNU 2455
    Codeforces 1426F
  • 原文地址:https://www.cnblogs.com/dingxiaoyue/p/4931743.html
Copyright © 2011-2022 走看看