当前位置: 移动技术网 > IT编程>开发语言>Java > Spring MVC结合Spring Data JPA实现按条件查询和分页

Spring MVC结合Spring Data JPA实现按条件查询和分页

2019年07月19日  | 移动技术网IT编程  | 我要评论

本文实例为大家分享了android九宫格图片展示的具体代码,供大家参考,具体内容如下

推荐视频:尚硅谷spring data jpa视频教程,一学就会,百度一下就有。

后台代码:在dao层继承spring data jpa的pagingandsortingrepository接口实现的 (实现方法主要在sbglserviceimpl.java类中)

前台表现:用kkpaper表现出来

实现效果:

1、实体类

package com.jinhetech.yogurt.sbgl.entity;

import java.io.serializable;

import javax.persistence.entity;
import javax.persistence.generatedvalue;
import javax.persistence.id;
import javax.persistence.primarykeyjoincolumn;
import javax.persistence.sequencegenerator;
import javax.persistence.table;

import org.hibernate.annotations.genericgenerator;
import org.springframework.cache.annotation.cacheable;
@entity
@table(name="sys_sbgl")
@primarykeyjoincolumn(name = "sbbm")
@cacheable(value = "basecache")
public class sbgl implements serializable{


  private static final long serialversionuid = -1423899016746755470l;

  @id
  private string sbbm;
  
  private string sbmc;
  private string sblx;
  private string sssx;
  private string ssjd;
  
  private string azsj;
  private string azry;
  private string sbzt;
  private string sbjd;
  private string sbwd;
  
  private string wxlxr;
  private string wxlxdh;
  private string sbywxcs;
  private string jzpylyz;
  private string mqsbcyr;
  private string bzsm;
  
    
  //setter、getter方法省略
  
}

2、jsp页面,看最下面的分页组件(kkpaper)

resultmap集合是下面controller中最后查询和分页后获得的所有数据信息,resultmap.resultlist:resultlist是map集合的属性,里面存着<key,value>数据

<%@ page language="java" import="java.util.*" pageencoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
<!doctype html>

<c:set var="ctx" value="${pagecontext.request.contextpath}" scope="session"/>

<html>
<head>
  <title>设备管理</title>
  <!-- ztree需要的样式和js -->
  <link rel="stylesheet" href="${ctx }/yogurtresource/assembly/ztree/css/ztreestyle.css" rel="external nofollow" type="text/css">
  <script type="text/javascript" src="${ctx }/yogurtresource/assembly/ztree/jquery.ztree.core-3.5.js"></script>
  <script type="text/javascript" src="${ctx }/yogurtresource/assembly/ztree/jquery.ztree.excheck-3.5.js"></script>
  
  <!-- 验证框架 -->
  <script type="text/javascript" src="${ctx }/yogurtresource/assembly/yogurt/user/formvalidate.js"></script>
  
  <!-- 修改表单验证错误提示样式 -->
  <style type="text/css">
    .table-bordered-ul li{ margin:0 5px; float:left}
    label.error {
     padding-left: 16px;
    
     padding-bottom: 2px;
    
     font-weight: bold;
    
     color: #f00;
    }
  </style>
  
  <script type="text/javascript">
  function console(consoletag, userid, statetag) {
      // 添加用户。
    if("add" == consoletag) {
      $('#formid').prop("action", "${ctx}/sbgl/sbgl_add_list");
    }
 
  }
        
  /**
   * 搜索。
   */
  function search() {
    $('#searchform').submit();
  }      
  
  </script>
  
</head>

<body>
  <div class="clear">
    <div class="panel panel-default yogurt_route" id="yogurt_route">
      <a href="${ctx }/home/home_list" rel="external nofollow" >首页</a> > <a
        href="javascript:void(0);" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" onclick="navigate();">设备管理</a> > 设备列表
    </div>
  </div>
  
  <ul id="bqnum">
    <li><a href="javascript:void(0);" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" onclick="navigate();">导航</a>
    </li>
    <li><a href="javascript:void(0);" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" onclick="orgtree();">机构</a>
    </li>
  </ul>
  
  <!-- 根据条件查询 -->
  <div class="clear ppd10" style="line-height:32px">
    <form action="${ctx }/sbgl/sbgl_list" method="post" id="searchform">
      <div style="float:left; width:200px">
        设备名称:
        <input type="text" name="sersbmc" id="sersbmc" >
      </div>
      <div class="floatleft">
          设备类型:
        <input type="text" name="sersblx" id="sersblx" >
      </div>
      <div class="floatleft">
          所属市县:
        <input type="text" name="sersssx" id="sersssx" >
      </div>
      <div class="floatleft">
          基地名称:
        <input type="text" name="serjdmc" id="serjdmc" >
      </div>
      <div class="floatleft">
          设备状态:
        <select class="form-control" style="display:inline-block; width:80px" name="sersbzt" id="sersbzt">
          <option value="">全部</option>
          <option value="y">正常</option>
          <option value="n">异常</option>
        </select>
      </div>    
      <button type="submit" class="btn btn-success yogurt_search_button" onclick="search();">
        <img src="${ctx }/yogurtresource/images/panel/search.png" width="18" height="18" />
      </button>
    </form>
  </div>
  
  <!-- 新增、删除 -->
  <div class="panel panel-default" style="margin-top:10px">
    <div class="yogurt_panel_title_core">
      <span class="state_bold">共查询出数据结果:<span class="state_red">${resultmap.totalnum}</span>条</span>
    </div>
    <div class="more_core3">
      <!-- <button type="button" class="btn btn-success yogurt_search_button2" onclick="console('add','');">新增设备</button> -->
      <button type="button" class="btn btn-success yogurt_search_button2" onclick="window.location.href='${ctx }/sbgl/sbgl_add_list' ">新增设备</button>
      <button type="button" class="btn btn-success yogurt_search_button2" onclick="console('delete','');">删除设备</button>
    </div>
  </div>
  <!-- 列表 -->
  <div class="yogurt_elementsbox_core clear">
    <div class="yogurt_elementsbox_table_article" id="yogurt_elementsbox_table_article">
      <table id="tablebody" border="0" cellspacing="0" cellpadding="0" class="table yogurt_elementsbox_table">
        <thead>
          <tr class="yogurt_tab_back" onmouseover="this.classname='yogurt_tab_trhover'" onmouseout="this.classname='yogurt_tab_back'">
            <th width="3%"><input type="checkbox" onclick="allchecked(this)"></th>
            <th width="10%">设备名称</th>
            <th width="10%">设备类型</th>
            <th width="10%">所属市县</th>
            <th width="10%">基地名称</th>
            <th width="10%">设备状态</th>
            <th width="10%">维修联系人</th>
            <th width="10%">联系电话</th>
            <th width="10%">设备持有人</th>
            <th width="17%" style="text-align:center;">操作</th>
          </tr>
        </thead>
        <tbody id="usertb">
          <c:foreach var="sbgl" items="${resultmap.resultlist}" varstatus="status">
            <tr>
              <td><input type="checkbox" ></td>
              <td>${sbgl.sbmc }</td>
              <td>${sbgl.sblx }</td>
              <td>${sbgl.sssx }</td>
              <td>${sbgl.ssjd }</td>
              <td>${sbgl.sbzt }</td>
              <td>${sbgl.wxlxr }</td>
              <td>${sbgl.wxlxdh }</td>
              <td>${sbgl.mqsbcyr }</td>
              <td style="text-align:center">
                <a href="javascript:void(0);" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" onclick="console('update', '${user.userid}')"> 修改</a>
                <a href="javascript:void(0);" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" onclick="showroles('${user.userid}')">| 查看</a>
              </td>
            </tr>
          </c:foreach>
        </tbody>
      
      </table>
      
      
    </div>
  </div>
  
  
    <!--分页-->
  <div style="clear:both; height:50px">
    <!--加载分页组件-->
    <div id="kkpager"></div>
    <script type="text/javascript">
      var param = "";

      $(function() {
        var totalpage = "${resultmap.totalpage}";
        var totalrecords = "${resultmap.totalnum}";
        var pagesize = "${resultmap.pagesize}";

        var pagenum = parseint("${resultmap.pagenum}") + 1;
        //初始化分页控件
        //有些参数是可选的,比如lang,若不传有默认值
        kkpager.init({
          pno: pagenum,
          //总页码
          total: "${resultmap.totalpage}",
          //总数据条数
          totalrecords: totalrecords,
          //链接前部
          hrefformer: 'sbgl_list',
          //链接尾部
          hreflatter: '',
          getlink: function(n) {
            return getinitparam() + "&pagenum=" + n + "&pagesize=" + pagesize;
          },
          lang: {
            prepagetext: '上一页',
            nextpagetext: '下一页',
            totalpagebeforetext: '共',
            totalpageaftertext: '页',
            totalrecordsaftertext: '条数据',
            gopagebeforetext: '转到',
            gopagebuttonoktext: '确定',
            gopageaftertext: '页',
            buttontipbeforetext: '第',
            buttontipaftertext: '页'
          }
        });
        //生成
        kkpager.generpagehtml();

        $('#mykkpagerselect').val(pagesize);
      });

      function returnoption(pagesize) {
        window.location.href = getinitparam() + "&pagenum=1&pagesize=" + pagesize;
      }

      function getinitparam() {
        var sersbmc = $('#sersbmc').val();
        var sersblx = $('#sersblx').val();
        var sersssx = $('#sersssx').val();
        var serjdmc = $('#serjdmc').val();
        var sersbzt = $('#sersbzt').val();

        var attr = "?sersbmc=" + encodeuri(encodeuri(sersbmc)) 
            + "&sersblx=" + sersblx + "&sersssx=" + sersssx + "&serjdmc=" + serjdmc+ "&sersbzt=" + sersbzt;
        return "${ctx}/sbgl/sbgl_list" + attr;
      }
    </script>
    <!--分页结束-->
  </div>
  <!--分页end-->
 
</body>
</html>

3、controller(看红色字体下面那个处理方法)

package com.jinhetech.yogurt.sbgl.controller;

import java.util.arraylist;
import java.util.hashmap;
import java.util.linkedhashset;
import java.util.list;
import java.util.map;
import java.util.set;

import javax.annotation.resource;

import org.apache.shiro.authz.annotation.requirespermissions;
import org.apache.shiro.authz.annotation.requiresroles;

import org.springframework.beans.factory.annotation.autowired;
import org.springframework.stereotype.controller;
import org.springframework.ui.model;
import org.springframework.web.bind.annotation.modelattribute;
import org.springframework.web.bind.annotation.requestmapping;
import org.springframework.web.bind.annotation.requestmethod;
import org.springframework.web.bind.annotation.requestparam;
import org.springframework.web.bind.annotation.responsebody;
import org.springframework.web.servlet.modelandview;
import org.springframework.web.servlet.mvc.support.redirectattributes;
import org.springframework.web.servlet.view.redirectview;

import com.jinhetech.yogurt.dictionary.crop.service.impl.cropserviceimpl;
import com.jinhetech.yogurt.func.entity.func;
import com.jinhetech.yogurt.func.service.funcservice;
import com.jinhetech.yogurt.menu.entity.menu;
import com.jinhetech.yogurt.menu.service.menuservice;
import com.jinhetech.yogurt.menu.util.menuutil;
import com.jinhetech.yogurt.organization.entity.orgtable;
import com.jinhetech.yogurt.organization.service.orgservice;
import com.jinhetech.yogurt.organization.util.orgutil;
import com.jinhetech.yogurt.role.entity.role;
import com.jinhetech.yogurt.role.service.roleservice;
import com.jinhetech.yogurt.sbgl.dao.sbgldao;
import com.jinhetech.yogurt.sbgl.entity.sbgl;
import com.jinhetech.yogurt.sbgl.service.sbglservice;
import com.jinhetech.yogurt.sbgl.util.sbglutil;
import com.jinhetech.yogurt.user.entity.user;
import com.jinhetech.yogurt.user.entity.userinfo;
import com.jinhetech.yogurt.user.service.userservice;
import com.jinhetech.yogurt.user.util.userutil;
import com.jinhetech.yogurt.util.base.basecontroller;
import com.jinhetech.yogurt.util.base.constants;
import com.jinhetech.yogurt.util.common.textutils;
import com.jinhetech.yogurt.util.common.uuidhexgenerator;

/**
 * 系统用户管理控制类
 * 
 * @author wang hao
 * @version 1.0 2014-02-28 初版
 */
@controller("sbglcontroller")
@requestmapping("/sbgl")
public class sbglcontroller extends basecontroller {
//  @resource(name = "sbgldao")
//  private sbgldao sbgldao;
  
  @resource(name = "sbglservice")
  private sbglservice sbglservice;
  
  /**
   * 平台权限管理导航*/
  @requestmapping("/home_list")
  public modelandview home() {

    return new modelandview("iot/permis/permis_home");
  }
  
  
  /**
   * 查询设备信息列表(支持分页和多条件查询)。
   * 
   */
  @requestmapping("sbgl_list")
  @requiresroles("sbgl/sbgl_list")
  public string getuserlist(model model) throws exception {
    //显示设备列表
//    list<sbgl> lst=new arraylist<sbgl>();
//    lst=(list<sbgl>) sbglservice.getall();
    
    map<string, object> resultmap = null;
    // 查询表单或分页保持请求时 请求参数的接收
    map<string, string> serargs = new hashmap<string, string>();
    serargs = sbglutil.getselargstomap(request);//这个类在下面给出
    

    resultmap = sbglservice.getuserbysearch(serargs, "wxlxdh");
    
    model.addattribute("resultmap", resultmap);
//    model.addattribute("lst", lst);

    return "sbgl/sbgl_list";
  }

  /**
   * 新增设备信息列表(支持分页和多条件查询)。
   * 
   * @author yangzhenghua 2014-5-28
   * @throws exception
   */
  @requestmapping("sbgl_add_list")
  @requiresroles("sbgl/sbgl_add_list")
  public string getaddlist(model model) throws exception {

    
    system.out.println("aaa");
    model.addattribute("aaa","aaa");
    model.addattribute("resultmap", "hello world");
    

    return "sbgl/sbgl_add_list";
  }
  
  
  /**
   * 保存、修改用户信息。
   * 
   * @author yangzhenghua 2014-5-28
   * @throws exception
   */
  @requestmapping("sbgl_save_list")
  @requiresroles("sbgl/sbgl_save_list")
  public modelandview savesbgl(sbgl sbgl) throws exception {

    string sbmc=request.getparameter("sbmc");
    string sblx=request.getparameter("sblx");
    string sssx=request.getparameter("sssx");
    string ssjd=request.getparameter("ssjd");
    string azsj=request.getparameter("azsj");
    
    string azry=request.getparameter("azry");
    string sbzt=request.getparameter("sbzt");
    string sbjd=request.getparameter("sbjd");
    string sbwd=request.getparameter("sbwd");
    string wxlxr=request.getparameter("wxlxr");
    
    string wxlxdh=request.getparameter("wxlxdh");
    string sbywxcs=request.getparameter("sbywxcs");
    string jzpylyz=request.getparameter("jzpylyz");
    string mqsbcyr=request.getparameter("mqsbcyr");
    string bzsm=request.getparameter("bzsm");
    
    sbgl.setsbbm(uuidhexgenerator.generate());
    sbgl.setsbmc(sbmc);
    sbgl.setsblx(sblx);
    sbgl.setsssx(sssx);
    sbgl.setssjd(ssjd);
    sbgl.setazsj(azsj);
    
    sbgl.setazry(azry);
    sbgl.setsbzt(sbzt);
    sbgl.setsbjd(sbjd);
    sbgl.setsbwd(sbwd);
    sbgl.setwxlxr(wxlxr);
    
    sbgl.setwxlxdh(wxlxdh);
    sbgl.setsbywxcs(sbywxcs);
    sbgl.setjzpylyz(jzpylyz);
    sbgl.setmqsbcyr(mqsbcyr);
    sbgl.setbzsm(bzsm);

    sbglservice.save(sbgl);

    return new modelandview(new redirectview("sbgl_list"));
  }


}

3.2、sbglutil.java

封装从前台传递过来的查询参数、前台传递过来的分页参数,都放到map集合serargs中

package com.jinhetech.yogurt.sbgl.util;

import java.util.arraylist;
import java.util.hashmap;
import java.util.list;
import java.util.map;
import java.util.map.entry;

import javax.servlet.http.httpservletrequest;
import javax.servlet.http.httpsession;

import org.springframework.web.context.request.requestcontextholder;
import org.springframework.web.context.request.servletrequestattributes;

import com.jinhetech.yogurt.organization.entity.orgtable;
import com.jinhetech.yogurt.report.entity.report;
import com.jinhetech.yogurt.role.entity.role;
import com.jinhetech.yogurt.user.entity.user;
import com.jinhetech.yogurt.user.entity.userinfo;
import com.jinhetech.yogurt.util.common.jsonutils;
import com.jinhetech.yogurt.util.common.textutils;

/**
 * 用户功能模块工具类。
 * 
 * @author yangzhenghua
 * @version v1.0 2014-5-16 初版
 * 
 */
public class sbglutil {

  /**
   * 封装从前台传递过来的查询参数。
   * 
   * @author yangzhenghua
   * @date 2014-6-26
   */
  public static map<string, string> getselargstomap(httpservletrequest request) throws exception {
    map<string, string> serargs = new hashmap<string, string>();

    string sersbmc = request.getparameter("sersbmc");
    string sersblx = request.getparameter("sersblx");
    string sersssx = request.getparameter("sersssx");
    string serjdmc = request.getparameter("serjdmc");
    string sersbzt = request.getparameter("sersbzt");
    
    string pagenum = request.getparameter("pagenum") == null ? "1" : request.getparameter("pagenum");
    string pagesize = request.getparameter("pagesize") == null ? "10" : request.getparameter("pagesize");


    //serargs.put("serusername", java.net.urldecoder.decode(serusername == null ? "" : serusername, "utf-8"));
    serargs.put("sersbmc", sersbmc);
    serargs.put("sersblx", sersblx);
    serargs.put("sersssx", sersssx);
    serargs.put("serjdmc", serjdmc);
    serargs.put("sersbzt", sersbzt);
    
    serargs.put("pagenum", pagenum);
    serargs.put("pagesize", pagesize);

    return serargs;
  }



}

3.3、sbglservice.java

package com.jinhetech.yogurt.sbgl.service;

import java.util.list;
import java.util.map;

import org.springframework.stereotype.service;
import org.springframework.transaction.annotation.transactional;

import com.jinhetech.yogurt.sbgl.entity.sbgl;


public interface sbglservice {

  public list<sbgl> getall() throws exception;
  
  public sbgl save(sbgl sbgl) throws exception;
  
  public map<string, object> getuserbysearch(map<string, string> serargs, final string sorttype) throws exception;
  
}

3.4、sbglserviceimpl.java (根据前台传递来的查询参数进行查询,获得的结果数据放到page objpage参数)

package com.jinhetech.yogurt.sbgl.service.impl;

import java.util.arraylist;
import java.util.list;
import java.util.map;

import javax.annotation.resource;
import javax.persistence.criteria.criteriabuilder;
import javax.persistence.criteria.criteriaquery;
import javax.persistence.criteria.jointype;
import javax.persistence.criteria.listjoin;
import javax.persistence.criteria.predicate;
import javax.persistence.criteria.root;

import org.springframework.data.domain.page;
import org.springframework.data.domain.pageable;
import org.springframework.data.jpa.domain.specification;
import org.springframework.stereotype.service;
import org.springframework.transaction.annotation.transactional;

import com.jinhetech.yogurt.role.entity.role;
import com.jinhetech.yogurt.sbgl.dao.sbgldao;
import com.jinhetech.yogurt.sbgl.entity.sbgl;
import com.jinhetech.yogurt.sbgl.service.sbglservice;
import com.jinhetech.yogurt.user.entity.userinfo;
import com.jinhetech.yogurt.util.common.pageutils;
import com.jinhetech.yogurt.util.common.textutils;

@service("sbglservice")
@transactional
public class sbglserviceimpl implements sbglservice{

  @resource(name = "sbgldao")
  private sbgldao sbgldao;
  
  
  public list<sbgl> getall() throws exception{
    
    return (list<sbgl>) this.sbgldao.findall();
  }

  public sbgl save(sbgl sbgl) throws exception {
    return sbgldao.save(sbgl);
  }
  
  
  /**
   * 查询用户信息列表(支持分页和多条件查询)。
   * 
   * @author yangzhenghua 2014-6-19
   */
  public map<string, object> getuserbysearch(final map<string, string> serargs, final string sorttype) throws exception {

    // 获得分页对象pageable,并且在pageable中页码是从0开始,设定按照sorttype升序排列
    pageable pageable = pageutils.buildpagerequest(integer.valueof(serargs.get("pagenum")),
        integer.valueof(serargs.get("pagesize")), sorttype);

    page<sbgl> objpage = sbgldao.findall(new specification<sbgl>() {

      public predicate topredicate(root<sbgl> root, criteriaquery<?> query, criteriabuilder cb) {
        list<predicate> lstpredicates = new arraylist<predicate>();

        if (textutils.isnotblank(serargs.get("sersbmc"))) {
          lstpredicates.add(cb.like(root.get("sbmc").as(string.class), "%" + serargs.get("sersbmc") + "%"));
        }
        if (textutils.isnotblank(serargs.get("sersblx"))) {
          lstpredicates.add(cb.like(root.get("sblx").as(string.class), "%" + serargs.get("sersblx") + "%"));
        }
        if (textutils.isnotblank(serargs.get("sersssx"))) {
          lstpredicates.add(cb.like(root.get("sssx").as(string.class), "%" + serargs.get("sersssx") + "%"));
        }
        if (textutils.isnotblank(serargs.get("serjdmc"))) {
          lstpredicates.add(cb.like(root.get("jdmc").as(string.class), "%" + serargs.get("serjdmc") + "%"));
        }

        if (textutils.isnotblank(serargs.get("sersbzt"))) {
          lstpredicates.add(cb.equal(root.get("sbzt"), serargs.get("sersbzt")));
        }

        predicate[] arraypredicates = new predicate[lstpredicates.size()];
        return cb.and(lstpredicates.toarray(arraypredicates));
      }
    }, pageable);

    return pageutils.getpagemap(objpage);
  }
  
  
}

3.4.1、pageutils.java(分页数据工具类)

package com.jinhetech.yogurt.util.common;

import java.util.hashmap;
import java.util.map;

import org.springframework.data.domain.page;
import org.springframework.data.domain.pagerequest;
import org.springframework.data.domain.sort;
import org.springframework.data.domain.sort.direction;

import com.jinhetech.yogurt.util.base.constants;

/**
 * 分页数据工具类。
 * 
 * @author yangzhenghua
 * @version v1.0 2014-6-24 初版
 * 
 */
public class pageutils {

  /**
   * 封装分页数据到map中。
   */
  public static map<string, object> getpagemap(page<?> objpage) {
    map<string, object> resultmap = new hashmap<string, object>();

    resultmap.put(constants.page_result_list, objpage.getcontent()); // 数据集合
    resultmap.put(constants.page_total_num, objpage.gettotalelements()); // 总记录数
    resultmap.put(constants.page_total_page, objpage.gettotalpages()); // 总页数
    resultmap.put(constants.page_num, objpage.getnumber()); // 当前页码
    resultmap.put(constants.page_size, objpage.getsize()); // 每页显示数量

    return resultmap;
  }

  /**
   * 创建分页请求。
   * 
   * @author yangzhenghua
   * @date 2014-7-14
   * 
   * @param pagenum 当前页
   * @param pagesize 每页条数
   * @param sorttype 排序字段
   * @param direction 排序方向
   */
  public static pagerequest buildpagerequest(int pagenum, int pagesize, string sorttype, string direction) {
    sort sort = null;

    if (!textutils.isnotblank(sorttype)) {
      return new pagerequest(pagenum - 1, pagesize);
    } else if (textutils.isnotblank(direction)) {
      if (direction.asc.equals(direction)) {
        sort = new sort(direction.asc, sorttype);
      } else {
        sort = new sort(direction.desc, sorttype);
      }
      return new pagerequest(pagenum - 1, pagesize, sort);
    } else {
      sort = new sort(direction.asc, sorttype);
      return new pagerequest(pagenum - 1, pagesize, sort);
    }
  }

  /**
   * 创建分页请求(该方法可以放到util类中).
   */
  public static pagerequest buildpagerequest(int pagenum, int pagesize, string sorttype) {
    return buildpagerequest(pagenum, pagesize, sorttype, null);
  }
  
  /**
   * 创建分页请求
   * 
   * @author yangzhenghua
   * @date 2014-11-12
   * 
   * @param pagenum
   * @param pagesize
   * @param sort
   * @return
   */
  public static pagerequest buildpagerequest(int pagenum, int pagesize, sort sort) {
    return new pagerequest(pagenum - 1, pagesize, sort);
  }

  /**
   * 创建分页请求(该方法可以放到util类中).
   */
  public static pagerequest buildpagerequest(int pagenum, int pagesize) {
    return buildpagerequest(pagenum, pagesize, null, null);
  }

}

 4、dao(sbgldao.java),对,只需要继承spring data jpa的pagingandsortingrepository接口,controller中调用其findall()方法

package com.jinhetech.yogurt.sbgl.dao;

import org.springframework.data.jpa.repository.jpaspecificationexecutor;
import org.springframework.data.repository.crudrepository;
import org.springframework.data.repository.pagingandsortingrepository;
import org.springframework.stereotype.repository;

import com.jinhetech.yogurt.sbgl.entity.sbgl;
import com.jinhetech.yogurt.user.entity.userinfo;

@repository("sbgldao")
public interface sbgldao extends pagingandsortingrepository<sbgl, string>, jpaspecificationexecutor<sbgl> {
  
  
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网