精华内容
下载资源
问答
  • java后端分页

    2020-11-18 16:29:43
    } 创建一个工具类 把方法贴进去即可,调用后就可以得到前台所需要的页数,循环输出即可 参数说明: count: 当前分页的数量 sideNum: 前端分页栏一次显示多少页 pageNum: 当前页 everyPage: 每页多少条数据
    public static int[] page(int count, int sideNum, int pageNum,int everyPage) {
    		int pageCount = (count%everyPage==0)?count/everyPage:(count/everyPage+1); //总页数
            //其实页
            int startNum = 0;
            //结束页
            int endNum = 0;
            int midpage = Math.round(sideNum / 2) +1 ;
            if (sideNum > pageCount) {
                endNum = pageCount;
            } else {
                if (pageNum <= midpage) {
                    endNum = sideNum;
                } else {
                    endNum = pageNum + midpage - 1;
                    if (endNum > pageCount) {
                        endNum = pageCount;
                    }
                }
            }
            if (endNum <= sideNum) {
                startNum = 1;
            } else {
                startNum = endNum - sideNum + 1;
            }
            //创建数组实现数字分页
            int[] a = new int[endNum  - startNum +1];
            for (int i = startNum; i <= endNum; i++) {
                a[i-startNum] = i;
            }
            return a;
    
        }
    

    创建一个工具类 把方法贴进去即可,调用后就可以得到前台所需要的页数,循环输出即可
    参数说明:
    count: 当前分页的数量
    sideNum: 前端分页栏一次显示多少页
    pageNum: 当前页
    everyPage: 每页多少条数据

    展开全文
  • java后端分页方案

    2018-12-05 13:45:00
    第一种分页(用sql分页) public static int[] getStartEndPage(int page, int limit) { int startPage = (page - 1) * limit + 1; int endPage = page * limit...

    第一种分页(用sql分页)

    public static int[] getStartEndPage(int page, int limit) {

        int startPage = (page - 1) * limit + 1;
        int endPage = page * limit;
        int[] startEndPage = {startPage, endPage};
        return startEndPage;
    
    }
    

    //计算起始页 int[] startEndPage = PageUtils.getStartEndPage(page, limit); startPage = startEndPage[0]; endPage = startEndPage[1];

    Select * from (select ROWNUM rn, t.* from (select * from table) t) where rn between startPage and endPage

    第二种分页 (先查询所有,在截取)

    public TableResultResponse<ClamcOperatingDataMana> selectDataManaList(Integer page, Integer limit, String queryStr) { List<ClamcOperatingDataMana> list = dataManaBiz.selectDataManaList(queryStr);

        Integer total = list.size();
        Integer maxCount = limit * page;
        Integer minCount = limit * (page - 1);
        if (maxCount > list.size()) {
            maxCount = list.size();
        }
        list = list.subList(minCount, maxCount);
        TableResultResponse<ClamcOperatingDataMana> tableResultResponse = new TableResultResponse<>(total, list);
        tableResultResponse.setMessage("success");
        return tableResultResponse;
    
    }
    

    第三种分页(用pageheper插件)

    pom <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>4.1.4</version> </dependency>

    SqlMapConfig.xml

    <?xml version="1.0" encoding="UTF-8" ?>

    <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">

    <configuration> <!-- 配置分页插件 --> <plugins> <plugin interceptor="com.github.pagehelper.PageHelper"> <!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库--> <property name="dialect" value="Oracle"/> </plugin> </plugins>

    </configuration>

    application.yml mybatis: mapper-locations: classpath:mapper/**/*.xml type-aliases-package: com.clamc.entity config-location: classpath:builder/SqlMapConfig.xml //扫描MyBatis全局变量配置

    public PageInfo<Doc> selectDocByPage1(int currentPage, int pageSize) { PageHelper.startPage(currentPage, pageSize); List<Doc> docs = docMapper.selectByPageAndSelections(); PageInfo<Doc> pageInfo = new PageInfo<>(docs); return pageInfo; }

    转载于:https://my.oschina.net/u/3668344/blog/2978877

    展开全文
  • 分页有物理分页和逻辑分页之分。物理分页是使用数据库本身提供的分页操作来完成数据查询,查询到的就是当前页的信息。例如mysql数据库可以使用limit,oracle数据库可以使用rownum来完成。逻辑分页是把数据库中所有的...

    1.业务说明
    分页有物理分页和逻辑分页之分。物理分页是使用数据库本身提供的分页操作来完成数据查询,查询到的就是当前页的信息。例如mysql数据库可以使用limit,oracle数据库可以使用rownum来完成。逻辑分页是把数据库中所有的数据查询出来,再利用数据库中的游标来定位到某个页面。
    物理分页的性能更好,但是不同数据库之间不通用。而逻辑分页的性能比较低,但是所有的数据库都能通用。而在一般的开发使用中,使用物理分页更加简单、便捷,在下面的案例中,我们也是使用物理分页。
    2前端代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>商品信息分页查询</title>
        <!--在线引用bootstrap-->
        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.4.1/dist/css/bootstrap.min.css"
              integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
        <script src="http://libs.baidu.com/jquery/2.1.4/jquery.min.js"></script>
    </head>
    <body>
    <div class="container">
        <p class="text-center font-weight-bold">商品信息分页查询</p>
        <table class="table table-striped">
            <thead>
            <tr>
                <th scope="col">序号</th>
                <th scope="col">姓名</th>
                <th scope="col">代码</th>
                <th scope="col">生产厂商</th>
                <th scope="col">包装类型</th>
                <th scope="col">价格</th>
                <th scope="col">库存</th>
            </tr>
            </thead>
            <tbody>
            </tbody>
        </table>
        <div>
            <nav aria-label="Page navigation example">
                <ul class="pagination justify-content-center">
                    <li class="page-item" id="pre">
                        <a class="page-link" href="#">上一页</a>
                    </li>
                    <li class="page-item" id="next">
                        <a class="page-link" href="#">下一页</a>
                    </li>
                    <li>
                        <div class="alert alert-light" role="alert" id="text">
                        </div>
                    </li>
                </ul>
    
            </nav>
        </div>
        <script>
            var pageno=1;
            var pagesize=5;
            var last;
            var totalcount;
            //改变table数据的函数
            var initdata=function (merch) {
                var html="";
                for(var i=0;i<merch.length;i++){
                    html+="<tr>";
                    html+="<td>"+merch[i].id+"</td>";
                    html+="<td>"+merch[i].name+"</td>";
                    html+="<td>"+merch[i].code+"</td>";
                    html+="<td>"+merch[i].factory+"</td>";
                    html+="<td>"+merch[i].packaging+"</td>";
                    html+="<td>"+merch[i].price+"</td>";
                    html+="<td>"+merch[i].stock+"</td>";
                    html+="</tr>";
                }
                $("tbody").append(html);
            }
            //改变页码的函数
            var change=function () {
                $("#text").text("");
                var str='当前第'+pageno+'页,'+'共'+totalcount+'条数据,'+'共'+last+'页';
                $("#text").text(str);
            }
            //点击上一页、下一页的点击函数
            var check=function () {
                $.get("http://localhost:8080/findMerchByPage",{"pageno":pageno,"pagesize":pagesize},function (data) {
                    $("tbody").html("");
                    initdata(data.merchs);
                },"json");
            }
            $("#pre a").click(function () {
                if(pageno>1){
                    pageno=pageno-1;
                    check();
                    change();
                }
            });
            $("#next a").click(function () {
                if(pageno<last){
                    pageno=pageno+1;
                    check();
                    change();
                }
            });
            //初始化数据函数
            $(function () {
                $.get("http://localhost:8080/findMerchByPage",{"pageno":pageno,"pagesize":pagesize},function (data) {
                    last=data.totalpage;
                    totalcount=data.totalcount;
                    initdata(data.merchs);
                    change();
                },"json");
            })
        </script>
    </div>
    </body>
    </html>
    

    2.2后端pojo对象
    封装数据库对象

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    @Accessors(chain = true)
    @ToString
    public class Merch {
        private Integer id;
        private String name;
        private String packaging;   //商品包装类型
        private String factory;     //厂家名称
        private Double price;       //价格
        private String code;        //代码
        
        private Integer stock;      //库存数
    }
    **vo对象**
    负责封装数据库查询到属性,前端用来调用
    @Data
    @AllArgsConstructor
    @Accessors(chain = true)
    @NoArgsConstructor
    public class Page {
        private int pageno;
        private int pagesize;
        private int totalpage;
        private int totalcount;
        private List<Merch> merchs;
    }
    

    2.3后端业务
    controller层

      /*
           跳转分页查询
        */
        @GetMapping("/merch-byPage")
        public String getModuleName() {
            return "merch-byPage";
        }
        /*
           分页查询业务实现
        */
        @RequestMapping("/findMerchByPage")
        @ResponseBody
        public Object findMerchByPage(int pageno,int pagesize) {
            return merchService.findMerchByPage(pageno, pagesize);
        }
    service层
     Object findMerchByPage(int pageno, int pagesize);
    
      @Override
        public Object findMerchByPage(int pageno, int pagesize) {
            int count = (pageno - 1)* pagesize;
            List<Merch> merchs = merchDao.findMerchByPage(count,pagesize);
            int totalcount = merchDao.findPage();
            int totalpage = 0;
            if (totalcount % pagesize == 0) {
                totalpage = totalcount / pagesize;
            }
            else {
                totalpage = totalcount/pagesize + 1;
            }
            Page page = new Page(pageno,pagesize,totalpage,totalcount,merchs);
            return page;
        }
    dao/mapper层
     List<Merch> findMerchByPage(int count,int pagesize);
        int findPage();
    
    xml数据库操作
    <!--分页查询-->
        <select id="findMerchByPage" resultType="com.cy.pojo.Merch">
    
        ```
        **3.最终显示效果图**
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210310101739854.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81Mzg1NTcwOQ==,size_16,color_FFFFFF,t_70)
    如有帮助可以点赞关注收藏!!!
    
    展开全文
  • hbase数据java后端分页查询

    千次阅读 2019-03-12 20:02:00
    2019独角兽企业重金招聘Python工程师标准>>> ...

    hbase springboot starter参考 https://github.com/SpringForAll/spring-boot-starter-hbase

    
    public PageQueryResult<LoginLog> queryUserLoginLogList(PageQueryParam pageQueryParam,
    			LoginLogRequest loginLogRequest) {
            FilterList filterList=new FilterList();
            Filter pageFilter = new PageFilter(1000);//最多1000条
            filterList.addFilter(pageFilter);
           
            String reverseUserId=StringUtils.reverse(loginLogRequest.getUserId()+"");
            Scan scan=new Scan();
            if(StringUtils.isNotEmpty(loginLogRequest.getQueryStartTime())){
            	 Date startDate=DateUtil.parse(loginLogRequest.getQueryStartTime(), "yyyy-MM-dd HH:mm:ss");
                 Date endDate=DateUtil.parse(loginLogRequest.getQueryEndTime(), "yyyy-MM-dd HH:mm:ss");
                 scan=new Scan().withStartRow(Bytes.toBytes(reverseUserId+"_"+(Long.MAX_VALUE-endDate.getTime())))
                 		.withStopRow(Bytes.toBytes(reverseUserId+"_"+(Long.MAX_VALUE-startDate.getTime())));
            }else{
            	Filter prefixFilter = new PrefixFilter(Bytes.toBytes(reverseUserId));
                filterList.addFilter(prefixFilter);
            }
            scan.setFilter(filterList);
    
            List<LoginLog> loginLogList=hbaseTemplate.find(UserLoginHandle.LOGINLOG_TABLE_NAME, scan, new RowMapper<LoginLog>() {
    
    			[@Override](https://my.oschina.net/u/1162528)
    			public LoginLog mapRow(Result result, int rowNum) throws Exception {
    				List<Cell> resultList=result.getColumnCells(Bytes.toBytes(UserLoginHandle.FAMILY_NAME), Bytes.toBytes(UserLoginHandle.COLUMN_NAME));
    				if(CollectionUtils.isEmpty(resultList)){
    					return null;
    				}
    				LoginLog loginLog=JSON.parseObject(Bytes.toString(CellUtil.cloneValue(resultList.get(0))), LoginLog.class);
    				return loginLog;
    			}
    		});
            
            if(CollectionUtils.isEmpty(loginLogList)){
                return new PageQueryResult<LoginLog>(pageQueryParam.getPageIndex(), pageQueryParam.getPageSize(), loginLogList, 0);
            }
            
            int fromIndex=(pageQueryParam.getPageIndex()-1)*pageQueryParam.getPageSize();
            if(fromIndex>loginLogList.size()){
                return new PageQueryResult<LoginLog>(pageQueryParam.getPageIndex(), pageQueryParam.getPageSize(), loginLogList, 0);
            }
            int toIndex=fromIndex+pageQueryParam.getPageSize();
            if(toIndex>loginLogList.size()){
                toIndex=loginLogList.size();
            }
            
            return new PageQueryResult<LoginLog>(pageQueryParam.getPageIndex(), pageQueryParam.getPageSize(), loginLogList.subList(fromIndex, toIndex), loginLogList.size());
    	}
    

    转载于:https://my.oschina.net/zhaoyi1/blog/3021616

    展开全文
  • <!--<span class="btn btn-default" @click="switchToPage(1)"> 首页 </span> <span class="btn btn-default" @click="switchToPage(page-1)">...span v-for="i in pages" :class="{active:...
  • 不管运用什么技术,分页无非就是前端分页或后端分页,也就是所谓的假分页与真分页。不过,按照常规来说,最好还是后端分页。假设有数万条数全部返回到前端,前端再进一步逻辑分页,可想而知响应到客户的视图界面需要...
  • java实现后端分页

    千次阅读 2019-06-26 14:43:25
    java实现后端分页 通过分页工具类(Page)来实现,具体参考代码参见下面链接. https://www.cnblogs.com/lixiang1993/p/7360404.html mapper.xml文件中的分页查询语句如下: 一、Mysql使用limit分页 select * from stu ...
  • 下面是使用java 后端的for循环实现的简单的分页,方法仅供参考,具体逻辑需要实际应用去做调整和修改,亲测改方式可行,需要根据具体的逻辑调整后实现。 代码只是核心的参考实例 pageParam是前段传的对应的分页...
  • Java如何实现后端分页

    千次阅读 2017-04-19 21:31:02
    工具:myeclipse ,数据库:Oracle ,jar包:classes12.jar 实现的功能:对客户的增删改查,展示客户列表,一页显示十条...2,后端分页技术 3,ajax前后台交互 代码如下: /** *客户接口类 */ public interface
  • Java后端实现分页效果

    2020-12-22 12:07:45
    前言:在我们的Java项目中,分页是必不可少的数据展示页面所以这篇博客主要讲分页的实现 在我们的开发当中 ,前后端之间数据交互是必不可少的,如果数据比较多,就需要进行数据封装,拿到前端进行页面的展示 第一步...
  • java后端实现分页逻辑

    2020-07-07 09:57:09
    java后端实现分页逻辑 创建一个工具类 用来计算和存储页码、页数等参数 public class PageSupport { //当前页码-来自于用户输入 private int currentPageNo = 1; //总数量(表) private int totalCount = 0; ...
  • java后端逻辑分页工具类 /** * @Description: 分页工具类:用于逻辑分页(数据量较小时使用) * @author: erlang * @date: 2021年07月29日 13:39 */ public class PageUtil implements Serializable { private ...
  • Ajax+Java实现JavaWeb后端分页技术开发背景业务需求技术需求使用Ajax异步实现查找数据库代码实现细节客户端Ajax代码页面效果思路源码后端Java代码思路实际业务代码 开发背景 好久没有写开发了! 研究生入学已经入学...
  • java 后端简单分页

    2019-09-12 07:33:36
    好久没有搞分页了,,一般好点的项目, 都有 集成第三方 的分页插件了,直接用就好啦,根本不需要管那么多。。 可是 在 开发一个 项目的时候, 他的分页没有使用 分页插件,,而是 使用原生的 limit分页,而我又想 ...
  • function fpdata() { var postdata={pageIndex:1,pageSize:5000,username:$("#susername").val()}; dLong.getJSON("/sys/findList",postdata,function(data){ if (data.success) { fpgrid(data.commonPage....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,181
精华内容 8,072
关键字:

java后端分页

java 订阅