精华内容
下载资源
问答
  • java后台处理数据分页问题

    千次阅读 2019-07-17 22:41:20
    分页功能在项目中是非常重要的,使用分页功能能够极大的减轻服务器的压力,不用一次全部加载出所有数据,只需要加载出客户需要的数据信息 使用分页辅助类来完成分页功能 ...基于mysql的分页查询 关键字--...

    分页功能在项目中是非常重要的,使用分页功能能够极大的减轻服务器的压力,不用一次全部加载出所有数据,只需要加载出客户需要的数据信息

    使用分页辅助类来完成分页功能
    一是因为分页辅助类来的开发可以适用于不同数据信息的分页,具有扩展性
    二是因为有的时候前端页面展示信息的需求决定的,把页面上要展示的信息到包含在这个分业辅助类对象中,然后再jsp页面就可以全部获取

    步骤:

    基于mysql的分页查询
    关键字----limit m,n m起始位置(从0开始) n条数
    m=(currentPage-1)*pageSize
    n=pageSize

    步骤一:建立分页辅助类

    package com.zy.utils;
    
    import java.util.List;
    
    public class LimitUtil {//分页辅助类
    	//属性
    	//页面尺寸----->自己规定的
    	private Integer pageSize=3;
        //总条数------->从数据库查询的(SELECT COUNT(*) from t_customer)
    	private Integer totalCount;
    	//总页数------->总页数int c=(a%b==0?(a/b):(a/b)+1);
    	private Integer pageCount;
    	//当前页 ------->页面传入的参数
    	private Integer currentPage;
    	//查询出来的数据集合 ?不确定:增强扩展性
    	private List<?> data;
    	public LimitUtil() {
    		super();
    	}
    	public LimitUtil(Integer pageSize, Integer totalCount, Integer pageCount, Integer currentPage, List<?> data) {
    		super();
    		this.pageSize = pageSize;
    		this.totalCount = totalCount;
    		this.pageCount = pageCount;
    		this.currentPage = currentPage;
    		this.data = data;
    	}
    	public Integer getPageSize() {
    		return pageSize;
    	}
    	public void setPageSize(Integer pageSize) {
    		this.pageSize = pageSize;
    	}
    	public Integer getTotalCount() {
    		return totalCount;
    	}
    	public void setTotalCount(Integer totalCount) {
    		this.totalCount = totalCount;
    	}
    	//-------------------------------------
    	//修改该get方法
    	public Integer getPageCount() {
    		//总页数int c=(a%b==0?(a/b):(a/b)+1);	
    		pageCount=(totalCount%pageSize==0?(totalCount/pageSize):(totalCount/pageSize)+1);
    		return pageCount;
    	}
    	//-----------------------------------------
    	public void setPageCount(Integer pageCount) {
    		this.pageCount = pageCount;
    	}
    	public Integer getCurrentPage() {
    		return currentPage;
    	}
    	public void setCurrentPage(Integer currentPage) {
    		this.currentPage = currentPage;
    	}
    	public List<?> getData() {
    		return data;
    	}
    	public void setData(List<?> data) {
    		this.data = data;
    	}
    }
    

    步骤二:完成接口层

    	public List<Customer> getCustomers(int m,int n);
    	接口层参数有两个,是为了sql查询语句传参数服务的
    

    步骤三:完成服务层

       public LimitUtil getCustomerInfo(int currentPage) {
    	//得到 m,n
    	LimitUtil limitUtil = new LimitUtil();//不饱满,未把属性填充完整
    	limitUtil.setCurrentPage(currentPage);
    	int m=(currentPage-1)*limitUtil.getPageSize();
    	int n=limitUtil.getPageSize();		
    	List<Customer> customers = cd.getCustomers(m, n);
    	//把limitUtil中未赋值的属性赋值
    	limitUtil.setTotalCount(cd.getTotalCount());
    	limitUtil.setData(customers);
    	return limitUtil;//经过以上赋值,limitUtil拥有页面所需要的一些信息,把它返回出去
    	}
    

    服务层的参数是由前端页面获得值确定的,这里只有一个参数是当前页面,通过这个参数我们要获得接口层参数m和n的值,并且将分页辅助类的内容填充好,之后返回该分页辅助类对象。

    步骤四:前端页面获取需要的数据

    <c:forEach items="${pageBean.data}" var="customer">	
    								<tr>
    									<td>${customer.custName}</td>
    									<td>${customer.dict.dname}</td>
    									<td>${customer.custSource}</td>
    									<td>${customer.custPhone}</td>
    									<td>${customer.custMobile}</td>
    									<td><a href="${pageContext.request.contextPath}/ToUpdateServlet?id=${customer.cid}&currentPage=${pageBean.currentPage-1}">修改</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="DeleteCustServlet?id=${customer.cid}&control=deleteCust&currentPage=${pageBean.currentPage-1}" onclick="javascript:return confirm('请慎重考虑是否要删除该数据!!!!')">删除</a></td>
    								</tr>
    </c:forEach>
    
    展开全文
  • Java实现数据分页

    千次阅读 2019-01-25 12:28:53
    1.数据全部查出再分页:后期查询速度快,会占有较多的内存 2.按照分页数据查找数据:后期查询稍微慢一点,内存占用的较少 一般都会选择第二种,因为计算机中,性能总是和内存挂钩的,而且第二种也可以避免查无用数据...

    今天来说一说分页的实现,传统的分页主要分为两种:
    1.数据全部查出再分页:后期查询速度快,会占有较多的内存
    2.按照分页数据查找数据:后期查询稍微慢一点,内存占用的较少
    一般都会选择第二种,因为计算机中,性能总是和内存挂钩的,而且第二种也可以避免查无用数据,因此就以第二种讲解,第一种比第二种简单的多。

    使用分页必不可少的是在数据库查询数据,那数据库分页都需要的参数是必须传过去的,只有这样才能使用数据库查数据
    

    那么要传什么参数进去呢?先看一看百度的分页效果
    在这里插入图片描述
    而且我还专门数了数百度每页的记录数是14条,看到这些有没有感到豁然开朗,没错,这样就可以利用数据库实现分页查找了。

    limit x,y;有了前边的数据是不是就可以算出x和y了,因此,在我们实现分页的处理需要传进去的参数就是每页的条数和当前页数。
    总页数可以通过数据库聚合函数和传入的参数计算而来(如果有余数就加一页)
     totalPageNum = totalRecords%pageSize==0?(totalRecords/pageSize):(totalRecords/pageSize+1);
    

    实现思想很简单,下来看看通过代码提取的分页模型

    以每个页面只有九个页码为里例子,当然那个页码数可以随便加多少,百度的页码是十页,我感觉十页不太好看(没有对称美)就选择九页
    

    主要的逻辑点在下边这块代码

       /*此处是用于计算开始页和结束页(均匀分配)
            *如果总数超过九页,如果计算出的当前页码小于等于0,那就说明currentPage不大于四,那就从1开始,那就+8算出结束页,如果结束页大于总页数 ,那就按照结束页-8算出开始页,否则就少于9页,从1开始。
            */
            startPage = currentPageNum - 4; //5
            endPage = currentPageNum + 4;  //13
            //看看总页数够不够9页
            if(totalPageNum>9){
                //超过了9页
                if(startPage < 1){
                    startPage = 1;
                    endPage = startPage+8;
                }
                if(endPage>totalPageNum){
                    endPage = totalPageNum;
                    startPage = endPage-8;
                }
            }else{
                //不够9页
                startPage = 1;
                endPage = totalPageNum;
            }
    

    分页模型方法的代码

     public PageModel(int currentPageNum,int totalRecords,int pageSize){
            this.currentPageNum = currentPageNum;
            this.totalRecords = totalRecords;
            this.pageSize=pageSize;
            //计算查询记录的开始索引
            startIndex = (currentPageNum-1)*pageSize;
            //计算总页数
            totalPageNum = totalRecords%pageSize==0?(totalRecords/pageSize):(totalRecords/pageSize+1);  
            startPage = currentPageNum - 4; //5
            endPage = currentPageNum + 4;  //13
           if(totalPageNum>9){
                if(startPage < 1){
                    startPage = 1;
                    endPage = startPage+8;
                }
                if(endPage>totalPageNum){
                    endPage = totalPageNum;
                    startPage = endPage-8;
                }
            }else{
                startPage = 1;
                endPage = totalPageNum;
            }
        }
    

    点击下一页事件的代码

      public int getNextPageNum() {
            nextPageNum = currentPageNum+1;
            if(nextPageNum>totalPageNum){
                nextPageNum = totalPageNum;
            }
            return nextPageNum;
        }
    

    点击上一页事件的代码

    public int getPrePageNum() {
            prePageNum = currentPageNum-1;
            if(prePageNum<1){
                prePageNum = 1;
            }
            return prePageNum;
        }
    

    然后就可以根据这戏数据轻松愉快的查询数据了并且处理后返回给前台,这些代码太简单就不写了,主要是分页原理和逻辑分析。

    有什么写到不对的地方见谅,这仅仅是我的理解,或者可以在下方帮忙纠正。文章很短都是精华。

    展开全文
  • java开发中分页处理

    2011-09-04 10:20:02
    java开发中的分页处理方法,代码形式展现
  • 那么我们就需要自己进行分页处理。思路一般是: 第一步:获取第三方接口调用返回的所有结果(可以循环获取),具体示例参考Step1.大家要根据自己的实际情况来调整修改。 第二步:根据返回的结果进行分页(调用...

     在某些时候,我们调用第三方接口时,他们的接口有进行分页,但是并不能满足我们的需求。 那么我们就需要自己进行分页处理。 思路一般是:

       第一步:获取第三方接口调用返回的所有结果(可以循环获取),具体示例参考Step1.大家要根据自己的实际情况来调整修改。

       第二步:根据返回的结果进行分页(调用方法Step2)。 同时,我写了个分页实现的工具类(Step3)供大家参考使用

        Step1:循环获取第三方接口的所有数据

                int pageIndex = 0;
                int pageSize = 50;
    //循环,分页获取所有数据返回结果
                do{
                    pageIndex++;
    //第三方接口的分页入参
                    requestType.pageInfo = new SoaPageInfoDto();
                    requestType.pageInfo.pageIndex = pageIndex;
                    requestType.pageInfo.pageSize = pageSize;
    //调用第三方接口
                    soaRep = CreditCardOfflineSoaSrvClient.getInstance().queryTrainTicketUserStandardListNew(requestType);
                    if(soaRep == null || soaRep.queryUserInfoList == null){
                        break;
                    }
                    resultList.add(soaRep);
                }while ((pageSize*pageIndex) < soaRep.pageDto.pageCount);  /*循环结束条件是当前查询条数大于返回的结果数*/

         Step2:返回结果之前手动分页

                if (activityInfoList != null && activityInfoList.size() > 0) {
                   //实际请求的pageIndex和pageSize
                    int start = (req.pageIndex -1) * req.pageSize;
                    int end = req.pageIndex * req.pageSize;
                    response.activityInfos = PageHandleUtil.handlePage(activityInfoList, start, end);
                }

          Step3(PageHandleUtil工具类):

    public class PageHandleUtil {
    
        public static <T> List<T> handlePage(List<T> source, int start, int end){
            int total = source.size();
            end = end > total ? total : end;
            if (end <= start) {
                return null;
            }
            return source.subList(start,end);
        }
    
    }

           以上的情况是在项目当中实际运用时碰到了问题以及解决办法。后续有时间我会抽象总结一下。上述示例是写下来备忘,同时仅供大家参考。有问题大家可以留言交流。

    展开全文
  • java内存分页 内存分页工具类 * 使用场景:多个查询结果组合后分页的情况 * 1、endNum置为上限,查分页(最大限度可查) * 2、不分页查询,用上限判断(超过上限给提示不能查) * 注意:需要分页的全量数据要...
  • java多线程分页查询

    热门讨论 2011-04-22 12:13:13
    用于数据量大的情况下预先查询数据,加快对后面页面数据查询速度
  • 主要介绍了java 对ArrayList进行分页实例代码的相关资料,需要的朋友可以参考下
  • java 分页显示从数据库查询数据

    千次阅读 2018-08-06 16:50:35
    代码如下: Page:是前台传的第几页参数 rows:是前台传的一页几条...count :是从数据库查询数据总条数  if (Page.getCurrentPage() == null){  Page.setCurrentPage(1);  } else {  Page.setCurrentPage(...

    代码如下:

    Page:是前台传的第几页参数

    rows:是前台传的一页几条参数

    count :是从数据库查询的数据总条数

       if (Page.getCurrentPage() == null){
                    Page.setCurrentPage(1);
                } else {
                    Page.setCurrentPage(Page.getCurrentPage());
                }
                Page.setPageSize(rows);
                Page.setStar((page- 1) * Page.getPageSize());
                Page.setTotalPage(count % rows == 0 ? count / rows : count / rows+ 1);
       List totalInfo=Page.setDataList(searchAllWhiteList.subList(Page.getStar(),count-Page.getStar()>Page.getPageSize()?         Page.getStar()+Page.getPageSize():count));

     

     

    展开全文
  • java实现数据分页展示

    千次阅读 2018-10-26 22:37:22
    java实现分页显示数据分页分页分类分页实现大体流程实现 分页 在开发中我们经常需要从后端查询数据到前端页面展示,当我们的数据很多的时候就可以使用到分页技术,会使得我们的数据显示更加美观合理。 分页分类 有两...
  • mybatis定时任务列表查询分页切割,列表查询存在风险,在框架的层面使用拦截器完成列表的分页切割
  • java:List集合分页处理的方法

    千次阅读 2019-03-18 14:25:31
    第一种方法是循环截取某个页面的数据: ... * @param dataList 分页数据 * @param pageSize 页面大小 * @param currentPage 当前页面 */ public static List&lt;String&gt; page(List&lt;Str...
  • java使用多线程及分页查询数据量很大的数据

    万次阅读 热门讨论 2018-07-24 14:59:18
    先通过count查出结果集的总条数,设置每个线程分页查询的条数,通过总条数和单次条数得到线程数量,通过改变limit的下标实现分批查询。   调用方法: import org.springframework.beans.factory.annotation....
  • 分页、模糊查询

    2017-06-10 17:22:11
    用myBatis和springMVC开发的小功能,分页+模糊查询,附带数据库
  • Java数据压缩与传输实例 1个目标文件 摘要:Java源码,文件操作,数据压缩,文件传输 Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、...
  • 在处理大量数据的时候需要多线程处理查询数据,为了避免死锁和等待。 可以使用分页的方式来查询和更新数据。 // 开启线程数量 //定义固定长度的线程池 防止线程过多 ExecutorService execservice = ...
  • java list 分页,方便分批处理整个list的数据...
  • 该代码不包括数据查询功能(提供了数据查询辅助类),需要调用相关辅助类获取数据库查询结果。 该代码也不包括事务控制(需要spring框架提供事务控制),事务由spring架构接管。 最后附赠MD5简单实现。
  • JAVA分页完美解决方案

    2013-04-16 20:41:47
    我的方案是用两个TAG完成分页显示数据和页码,一个TAG(displaytag)专门显示数据,一个TAG(PagesSearchTag.java)专门显示页码,可以满足所有的分页要求,在JSP文件中调用这两个TAG既可完成分页任务。页码格式类似...
  • 1:java分页查询后台实现的基本过程 注意:实现原理:了解两个sql语句 select * from coupon_card LIMIT #{offset}, #{limit} 解释:offset :查询结果的索引值(默认从0开始),当i=0时可省略offset limit :为查询...
  • 怎么样用代码实现数据库中数据分页查询,实现首页,上一页,下一页,末页的效果啊,求大神们指点一二!
  • java 对list数组进行分页处理

    千次阅读 2019-09-16 16:24:51
    package com.dsyh.util; import java.util.Collections; import java.util.List; public class ListPageUtil<T> { private List<T> data; /** 上一页 */ private int lastPage; /** 当前...
  • Java中实现Oracle分页查询

    千次阅读 2018-08-02 19:45:15
    分页查询所有用户信息,page为要显示的第几页,row为每页有几行 */ public UserVO findAllUser(int page,int row) { ResultSet rs = null; PreparedStatement prep = null; UserVO user = null; try { /**...
  • java 分页 处理

    2011-07-14 15:58:16
    很实用的java分页,有了它可以轻松的实现数据分页
  • Java如何在List中进行数据分页

    千次阅读 2019-07-03 19:38:22
    Java在如何在List中进行数据分页 业务场景 今天在编写代码的时候遇到一个场景,数据库中的存储的状态少于前端需要展示的状态,需要在JAVA层中进行状态处理,但是该列表出现需要的状态较多并且需要分页,那么直接...
  • 最近修改了一个导出员工培训课程的历史记录(一年数据),导出功能本来就有的,不过前台做了时间限制(只能选择一个月时间内的),还有一些必选条...
  • Java多线程大批量同步数据分页

    千次阅读 2019-09-27 11:33:52
    背景 最近遇到个功能,两个月有300w+的数据,之后还在累加,因一开始该数据就全部存储在mysql表,现需要展示在...一开始同步的时候,采用单线程,循环以分页的模式去同步这两张表数据,结果是…一晚上,只同步了30...
  • java手动分页处理

    2018-01-04 15:40:00
    但是在有些项目中,需要将数据查询出来进行手动分页,那么原理是什么呢? 其实很简单,首先需要知道数据总量,如果不知道数据总量,那么就要指定数据总量:totalCount 然后每页查询多少条数据,需要指定.我们默认pageSize=...
  • 问题 不想在Sql中使用limit语法来实现分页,想在Java代码中用stream方式实现分页。...这样就在Java代码层面实现了分页查询。 参考 基于Java的的Stream分页实现 Query Databases Using Java Streams ...
  • 问题描述: ... 1、在使用PageHelper时需要注意,初始化分页数据最好加在查询语句的上面,中间不要添加其他的查询语句 ; 2、如果中间有其他查询语句,就会作用在距离该初始化语句最近的一条查询语句...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 87,479
精华内容 34,991
关键字:

java数据查询分页处理

java 订阅