精华内容
下载资源
问答
  • 在SpringBoot项目中写一个请求接口实现分页查询 接口代码: /** * 获取参数列表,分页 * * @param * @return * @throws Exception */ @GetMapping("/v1/zdyl/lcoModel/get/list") public ResultJson ...

    1、在SpringBoot项目中写一个请求接口实现分页查询 接口代码:

        /**
         * 获取参数列表,分页
         *
         * @param
         * @return
         * @throws Exception
         */
        @GetMapping("/v1/zdyl/lcoModel/get/list")
        public ResultJson lcoModelGetList(HttpServletRequest request) throws Exception {
            Map<String, Object> data = new HashMap<>();
            int pageIndex = 1;
            int pageSize = 9;
            if (request.getParameter("pageIndex") != null
                    && request.getParameter("pageSize") != null
                    && !request.getParameter("pageIndex").equals("")
                    && !request.getParameter("pageSize").equals("")) {
                pageIndex = Integer.parseInt(request.getParameter("pageIndex"));
                pageSize = Integer.parseInt(request.getParameter("pageSize"));
            }
            //条件构造器
            QueryWrapper<LcoModel> lcoModelEntityWrapper = new QueryWrapper<>();
            lcoModelEntityWrapper.orderByDesc("create_time");
            if (request.getParameter("name") != null && !request.getParameter("name").equals(""))
                lcoModelEntityWrapper.like("name", request.getParameter("name"));
            Page<LcoModel> lcoModelPage = (Page<LcoModel>) ilCoModelService.page(new Page<LcoModel>(pageIndex, pageSize), lcoModelEntityWrapper);
            data.put("total", lcoModelPage.getTotal());
            data.put("data", lcoModelPage.getRecords());
            return ResultJson.ok("获取参数列表成功!", data);
        }

    其中的传入参数类型是:HttpServletRequest,请求的url格式是:

    http://localhost:8899/v1/zdyl/lcoModel/get/list?pageIndex=2&pageSize=3


    (如果请求接口中传入的参数是@PathVariable,则接口请求格式直接是斜杠后面跟参数即可,例如:

    http://localhost:8899/v1/zdyl/lcoModel/get/detail/1201c5e6-4b4b-4fb8-995f-b0677c681178)

     

    2、语句:  @ConfigurationProperties(prefix = "spring.datasource")   的意思是从 spring.datasource 这个目录下面读取配置。

    spring:
      jackson:
        time-zone: GMT+8
        date-format: yyyy-MM-dd HH:mm:ss
      datasource:
        driver-class-name: com.mysql.jdbc.Driver
        type: com.alibaba.druid.pool.DruidDataSource
        jdbc-url: jdbc:mysql://shujvku.mysql.rds.aliyuncs.com:3306/dm?serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true&characterEncoding=utf-8
        username: yonghuming
        password: mima
        filters: stat
        maxActive: 20
        initialSize: 1
        maxWait: 60000
        minIdle: 1
        timeBetweenEvictionRunsMillis: 60000
        minEvictableIdleTimeMillis: 300000
        validationQuery: select 'x'
        testWhileIdle: true
        testOnBorrow: false
        testOnReturn: false
        poolPreparedStatements: true
        maxOpenPreparedStatements: 20

     

    3、写完上述的接口后,发现查询的时候没有实现分页,还是所有的数据都查出来了,检查后发现没有进行mybatis-plus分页插件的配置,添加上MyBaties-Plus配置类:

    package com.zdyl.devicemanagement.config;
    
    
    import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.boot.jdbc.DataSourceBuilder;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    import javax.sql.DataSource;
    
    @MapperScan("com.example.demo.**.mapper")
    @Configuration
    public class MybatisConfig {
    
        /**
         * 数据源配置
         *
         * @return
         */
        @Bean
        @ConfigurationProperties(prefix = "spring.datasource")
        public DataSource dataSource() {
            return DataSourceBuilder.create().build();
        }
    
        /**
         * mybatis-plus分页插件<br>
         * 文档:http://mp.baomidou.com<br>
         */
        @Bean
        public PaginationInterceptor paginationInterceptor() {
            return new PaginationInterceptor();
        }
    }
    

    其中:

    @MapperScan("com.example.demo.**.mapper")

    这一行可以代替Mapper类中的@Mapper注解。

     

     

     

    展开全文
  • 一般想到的计算是,通过求余 求模,没有整除,循环次数就要 +1 int p = totalCount / pageSize; if (totalCount % pageSize != 0) p++; return p; int p = totalCount / pageSize; if (to...

    一般想到的计算是,通过求余 求模,没有整除,循环次数就要 +1

            int p = totalCount / pageSize;
            if (totalCount % pageSize != 0)
                p++;
            return p;
    
            int p = totalCount / pageSize;
            if (totalCount % pageSize == 0)
                return p;
            else
                return p + 1;
    

    其他不需要判断,直接一行计算, 例如 totalCount=23 pageSize=10 那么应该是3页,

    // 如果totalCount是20,则totalCount - 1是19,(totalCount - 1) / pageSize是1,需要加1
    // 其他情况当然是(totalCount - 1) / pageSize后有余数,没整除,需要加1
    (totalCount - 1) / pageSize + 1;
    
    // 余数增长,肯定 余数< pageSize,  如果给 totalCount 加 pageSize - 1,则如果totalCount有余数,加后就会超过pageSize一次,totalCount可以被整除,没有余数,加后不影响整除
    (totalCount + pageSize - 1) / pageSize;
    
    展开全文
  • Access数据库 实现分页查询

    千次阅读 2019-07-28 14:20:16
    Access数据库 实现分页查询目录说明项目的结构SQL语句Servlet:page.java显示页面query.jsp访问页面hello.jsp总结 目录 说明 项目环境:Eclipse+Tomcat服务器+Access数据库+servlet+jdbc驱动 项目的结构 图片: SQL...

    目录

    说明

    项目环境:Eclipse+Tomcat服务器+Access数据库+servlet+jdbc驱动

    项目的结构

    图片: 在这里插入图片描述

    SQL语句

    分页查找的SQL语句,代码片.

    String sql="select top 4 * from Histrjn where JourNo not in "
    					+ "(select top "+(n-1)*4+" JourNo from Histrjn order by JourNo ) "
    					+ "order by JourNo ";
    //top:sql语句关键字
    //4:分页中一页显示的记录条数
    //Histrjn:表名
    //JourNo:主键属性
    //n:当前页面数
    //not in:不在其中
    //order by JourNo:对主键属性排序
    

    说明:
    top是分页sql语句的关键字
    提醒:
    1. 第一页时n=1,sql中(n-1)是0

    Servlet:page.java

    page.java来进行数据库分页查询,代码片.

    package hello;
    
    import java.io.IOException;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.Iterator;
    import java.util.LinkedHashMap;
    import java.util.LinkedList;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    //使用注解定义Servlet
    @WebServlet("/page")
    public class page extends HttpServlet {
    	private static final long serialVersionUID = 1L;
    	Connection con;
    	Statement st;
    	ResultSet rs;
    
    	public page() {
    		super();
    	}
    
    	protected void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		try {
    			Class.forName("com.hxtt.sql.access.AccessDriver");// jdbc数据库驱动
    			String url = "jdbc:Access:///F:HrMS.accdb";// 数据源名称
    			Connection con = DriverManager.getConnection(url, "", "");// 建立数据库连接对象
    			Statement st = con.createStatement();
    
    			// 获得Histrjn表中记录的总数
    			ResultSet rs = st.executeQuery("select count(JourNo) from Histrjn");
    			rs.next();
    			int x = rs.getInt(1);
    			System.out.println("总记录数:" + x);
    			// 判断是否被平均分页,确定分页总数
    			if (x % 4 == 0) {
    				x = x / 4;
    			} else {
    				x = x / 4 + 1;
    			}
    			request.setAttribute("x", x);// 分页总数加入required中
    
    			int n = 1;// 初始化当前页面数
    			if (request.getParameter("n") == null) {
    				n = 1;
    			} else {
    				// 从页面中获取请求页数
    				n = Integer.parseInt(request.getParameter("n"));
    			}
    
    			// 分页查询的sql语句
    			String sql = "select top 4 * from Histrjn where JourNo not in " + "(select top " + (n - 1) * 4
    					+ " JourNo from Histrjn order by JourNo ) " + "order by JourNo ";
    			rs = st.executeQuery(sql);//
    			List<Map<String, Object>> list = page.convertList(rs);
    			// 检验list对象,打印list内容,非必要
    			page.viewList(list);
    			// 获得表属性字段名
    			Set<String> key = list.get(0).keySet();
    			request.setAttribute("key", key);
    			request.setAttribute("list", list);
    			request.getRequestDispatcher("/query.jsp").forward(request, response);
    		} catch (ClassNotFoundException | SQLException e) {
    			
    			e.printStackTrace();
    			
    		} finally {
    			if (rs != null || st != null || con != null) {
    				try {
    					rs.close();
    					st.close();
    					con.close();
    				} catch (SQLException e1) {
    					// TODO Auto-generated catch block
    					e1.printStackTrace();
    				}
    			}
    		}
    
    	}
    
    	protected void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		doGet(request, response);
    	}
    
    	// 将ResultSet对象转为List<Map<String, Object>>
    	public static List<Map<String, Object>> convertList(ResultSet rs) throws SQLException {
    		List<Map<String, Object>> list = new LinkedList<Map<String, Object>>();
    		ResultSetMetaData md = rs.getMetaData();
    		int columnCount = md.getColumnCount();
    		
    		while (rs.next()) {
    			// 第一个插入的为第一个map值对
    			Map<String, Object> rowData = new LinkedHashMap<String, Object>();
    			for (int i = 1; i <= columnCount; i++) {
    				rowData.put(md.getColumnName(i), rs.getObject(i));
    			}
    			list.add(rowData);
    		}
    
    		return list;
    	}
    
    	// 检验list对象,显示list,非必要
    	public static void viewList(List<Map<String, Object>> list) {
    		// 遍历list
    		Iterator<Map<String, Object>> li = list.iterator();
    		while (li.hasNext()) {
    			// 遍历map
    			for (Map.Entry<String, Object> ma : li.next().entrySet()) {
    				System.out.print(ma.getValue() + "   ");
    			}
    			System.out.println("");
    		}
    
    	}
    
    }
    

    说明:
    方法public static void viewList(List<Map<String, Object>> list)是非必要的

    提醒:
    在map中属性的排列和数据库的顺序不同,因为map对象按照key的大小进行了排序

    显示页面query.jsp

    显示分页查询的页面query.jsp,使用了< c:forEach > 进行遍历,代码片.

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    	pageEncoding="UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>显示页面</title>
    
    <style type="text/css">
    td {
    	text-align: middle;
    	text-align: center;
    	font-size:25px;
    }
    </style>
    </head>
    <body>
    	<br>
    	<br>
    	<br>
    	<table align="center" border="1" width="1000" height="170"
    		cellpadding="0" cellspacing="0">
    		<tr>
    			<!-- 遍历集合对象 -->
    			<c:forEach var="ke" items="${key}">
    				<td>${ke}</td>
    			</c:forEach>
    		</tr>
    		<!-- 嵌套遍历集合对象 -->
    		<c:forEach var="map" items="${list}">
    			<tr>
    				<c:forEach var="me" items="${map}">
    					<td>${me.value}</td>
    				</c:forEach>
    			</tr>
    		</c:forEach>
    
    	</table>
    	<br>
    	<br>
    	<div align="center">
    				
    		<font size="5"><!-- 循环遍历 -->
    			<c:forEach begin="1" end="${x}" var="i">
    				<a href="page?n=${i}">${i}</a>
    			</c:forEach></font>
    	</div>
    </body>
    </html>
    

    说明:
    1. 开启c:标签,<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core”%>。
    2. 使用c:标签要引入两个包jstl.jar和standard-1.1.2.jar
    3. 使用<c:forEach>遍历,配合EL表达式${},方便的输出集合内容。
    4. 使用css来设置< td >的属性。

    访问页面hello.jsp

    代码片.

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>分页查询访问页面</title>
    </head>
    <body>
    <a href="page" >分页查询</a>
    </body>
    </html>
    

    提醒:
    该页面没有设置编码方式。

    总结

    	1. 使用注解注册servlet,不需要对web.xml进行配置了,使用默认的就行
    	2. 分页查询时如果id不连续,分页效果则不能完成
    **引用包是最大的困难(一步一步来)**
    
    展开全文
  • SQL分页,。减少查询数据库的次数提高代码效率。程序跑起来更顺畅
  • JavaWeb分页显示内容之分页查询的三种思路(数据库分页查询) 转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6134851.html 在开发过程中,经常做的一件事,也是最基本的事,就是从数据库查询数据,然后在...

    JavaWeb分页显示内容之分页查询的三种思路(数据库分页查询)

        转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6134851.html

        在开发过程中,经常做的一件事,也是最基本的事,就是从数据库中查询数据,然后在客户端显示出来。当数据少时,可以在一个页面内显示完成。然而,如果查询记录是几百条、上千条呢?直接一个页面显示完全的话,表格得多长啊。。。。。。这时,我们可以用分页技术。

        何为分页?效果图如下:

       

         这里总共查询了100条记录,如果一次性显示的话表格会很多行,用户体验不佳。而我们采用分页显示的话,一页显示10条记录,共十页。用户可以自行翻阅,记录少,清晰显示。

         下面谈谈分页效果的实现,思路有三种:

        其一:纯JS实现分页。一次性查询记录并加载到html的table中。然后通过选择性地显示某些行来达到分页显示的目的。这是一种伪分页,障眼法而已。只能用于数据少的情况下。一旦数据多了,十几万条数据加载到html中会变得很慢。而且不实时,一次加载完后数据就写死在页面了,若数据库中有变化,浏览器端显示的仍是上次加载过来的数据。

         首先:用table来显示查询出来的记录们,全部显示。

    复制代码
    <table width="500" id="idData">
                <%
                        String user_id, user_name, user_sex, user_phone, user_age;
                        while (sqlRst.next()) {
                            user_id = sqlRst.getString(1);
                            user_name = sqlRst.getString(2);
                            user_sex = sqlRst.getString(3);
                            user_phone = sqlRst.getString(4);
                            user_age = sqlRst.getString(5);
                %>
                <tr>
                    <td><%=user_id%></td>
                    <td><%=user_name%></td>
                    <td><%=user_sex%></td>
                    <td><%=user_phone%></td>
                    <td><%=user_age%></td>
                </tr>
                <%
                    }
                %>            
            </table>        
            <br/>
            
        <table width="60%" align="right">
            <tr><td><div id="changePages" name="changePages"></div></td></tr>
        </table>
    复制代码

        然后,在JS中修改table中某些行显示,某些行隐藏。

       

    复制代码
    <script type="text/javascript">
        function goPage(pno,psize){
        var itable = document.getElementById("idData");//获取table
        var num = itable.rows.length;//得到记录总数
        var totalPage = 0;
        var pageSize = psize;//一页显示pageSize条记录
        //计算总页数
        if(num/pageSize > parseInt(num/pageSize)){   
                totalPage=parseInt(num/pageSize)+1;   
           }else{   
               totalPage=parseInt(num/pageSize);   
           }   
         //当前页数
        var currentPage = pno;
        //获取当前页第一条、最后一条记录的行号
        var startRow = (currentPage - 1) * pageSize+1;
           var endRow = currentPage * pageSize;
           endRow = (endRow > num)? num : endRow;
        //修改table中当前页对应的行的属性为显示,非本页的记录为隐藏
        for(var i=1;i<(num+1);i++){    
            var irow = itable.rows[i-1];
            if(i>=startRow && i<=endRow){
                irow.style.display = "block";    
            }else{
                irow.style.display = "none";
            }
        }
        
        //分页页码列表
        var tempStr = "共"+num+"条记录 分"+totalPage+"页 当前第"+currentPage+"页";
        if(currentPage>1){
            tempStr += "<a href=\"#\" onClick=\"goPage("+(1)+","+psize+")\">首页</a>";
            tempStr += "<a href=\"#\" onClick=\"goPage("+(currentPage-1)+","+psize+")\"><上一页</a>"
        }else{
            tempStr += "首页";
            tempStr += "<上一页";    
        }
    
        if(currentPage<totalPage){
            tempStr += "<a href=\"#\" onClick=\"goPage("+(currentPage+1)+","+psize+")\">下一页></a>";
            tempStr += "<a href=\"#\" onClick=\"goPage("+(totalPage)+","+psize+")\">尾页</a>";
        }else{
            tempStr += "下一页>";
            tempStr += "尾页";    
        }
        document.getElementById("changePages").innerHTML = tempStr;   
    }
        </script>
    复制代码

     

         其二:一次查询,分批显示。

         就是说,我们可以执行一个数据库查询操作,得到结果集rs。然后,通过指针的移动来显示当前页面的记录。这样,就可以以   rs.absolute(当前页面号*每页记录数)定位到当前页的第一条记录,然后通过while循环显示n条记录(n为每页显示记录数)。在跳页时,只需修改currentPage,即可在重定位到下一页时把当前页面号改掉,重新定位记录指针,通过while遍历显示n条记录。与JS选择性显示不同,这里是选择性遍历。与JS分页不同的是,这里分页每次跳页修改的是遍历的指针,每次跳页都要进行一次全面查询。同样地,不适合大数据量查询。这里比JS分页优化的地方在于——实时性。每次跳页都会查询一次数据库,保证数据的实时性。

         参考代码:

        

    复制代码
              <%    
                int intPageSize = 10;             //一页显示的记录数 
                        int intRowCount;                 //记录总数 
                        int intPageCount;                 //总页数 
                        String strPage;                    //从表单或URL传送的待显示页码
                        int intPage;                     //待显示页码 ,由strPage转换成的整数
    
    复制代码
               
            //---计算记录总数的第一种方法:查询出所有记录,移动结果集指针到最后一条,获取最后一条记录的行号
              //查询所有数据
                ResultSet sqlRst = sqlStmt.executeQuery("select * from user");
                //获取记录总数 
                sqlRst.last();                    //光标在最后一行
                intRowCount = sqlRst.getRow();    //获得当前行号,即总记录数
                //记算总页数 
                intPageCount = (int)Math.ceil(intRowCount/(intPageSize*1.0));
    复制代码
    
         

     

    //将记录指针定位到待显示页的第一条记录上 
                        sqlRst.absolute((intPage - 1) * intPageSize + 1);
                        //显示数据 
                        int i=0;
                        String user_id, user_name, user_sex, user_phone, user_age;
                        while (i < intPageSize && !sqlRst.isAfterLast()) {
                            user_id = sqlRst.getString(1);
                            user_name = sqlRst.getString(2);
                            user_sex = sqlRst.getString(3);
                            user_phone = sqlRst.getString(4);
                            user_age = sqlRst.getString(5);
                %>
                <tr>
                    <td><%=user_id%></td>
                    <td><%=user_name%></td>
                    <td><%=user_sex%></td>
                    <td><%=user_phone%></td>
                    <td><%=user_age%></td>
                </tr>
                <%
                            sqlRst.next();//移动记录指针指向下一条记录
                            i++;//统计当前页已显示多少条记录
                        }
                %>
    复制代码

        其三:在服务端分页。跳到第n页才查询、显示第n页内容。要点就是根据客户端表格的“页面”计算出数据库要查询的当前页面的第一条记录的位置。优点:实时性:跳页才查询。数据量小:只加载当前页的记录进行显示。

        重点在于两条语句:select count(*) from ...:查询得到记录总条数

                                 select * from .. limit pageNo,rowsCount:查询从第pageNo条开始的rowsCount条数据。

       

    复制代码
        int pages=0;            //待显示页面
        int count=0;            //总条数
        int totalpages=0;        //总页数
        int limit=10;            //每页显示记录条数    
        //计算记录总数的第二种办法:使用mysql的聚集函数count(*)
        ResultSet sqlRst = sqlStmt.executeQuery("select count(*) from user");
        if(sqlRst.next()){
            count = sqlRst.getInt(1);//结果为count(*)表,只有一列。这里通过列的下标索引(1)来获取值
        }    
        //由记录总数除以每页记录数得出总页数
        totalpages = (int)Math.ceil(count/(limit*1.0));
        //获取跳页时传进来的当前页面参数
        String strPage = request.getParameter("pages");
        //判断当前页面参数的合法性并处理非法页号(为空则显示第一页,小于0则显示第一页,大于总页数则显示最后一页)
        if (strPage == null) { 
            pages = 1;
        } else {
            try{
                pages = java.lang.Integer.parseInt(strPage);
            }catch(Exception e){
                pages = 1;
            }
            
            if (pages < 1){
                pages = 1;
            }
            
            if (pages > totalpages){
                pages = totalpages;
            }                            
        }
        //由(pages-1)*limit算出当前页面第一条记录,由limit查询limit条记录。则得出当前页面的记录
        sqlRst = sqlStmt.executeQuery("select * from user order by user_id limit " + (pages - 1) * limit + "," + limit);
        while (sqlRst.next()){//遍历显示}
    复制代码

        跳页的实现:跳页是通过重定向来实现的,通过向当前网页传进待显示的pages,在跳转后根据pages重新算出页面显示的第一条,查limit条显示。

       

    复制代码
    <form name="f1" method="POST" action="index.jsp" onSubmit="return checknum()">
                <table border="0" align="center" >
                    <tr>
                        <td><%=pages%>页 共<%=totalpages%><a href="index.jsp?pages=1">首页</a></td>
                        <td><a href="index.jsp?pages=<%=(pages<1)?pages:(pages-1) %>"> 上一页</a></td>
                        <td><a href="index.jsp?pages=<%=(pages>=totalpages)?totalpages:(pages+1)%>"> 下一页</a></td>
                        <td><a href="index.jsp?pages=<%=totalpages%>">最后一页</a></td>
                        <td>转到第:<input type="text" name="page" size="8"><input type="submit" value="GO" name="cndok"></td>
                    </tr>
                </table> 
     </form>
    复制代码

       

       附:常见数据库分页查询语句

    复制代码
    1.oracle数据库分页
        select * from (select a.*,rownum rc from 表名 where rownum<=endrow) a where a.rc>=startrow
    
    2.DB2数据库分页
        Select * from (select rownumber() over() as rc,a.* from (select * from 表名 order by列名) as a) where rc between startrow and endrow
    
    3.SQL Server 2000数据库分页
        Select top pagesize * from 表名 where 列名 not in(select top pagesize*page 列名 from 表名 order by列名) order by列名
    
    4.SQL Server 2005数据库分页
        Select * from (select 列名,row_number() over(order by 列名1) as 别名from 表名) as t where t.列名1>=startrow and t.列名1<=endrow
    
    5.MySQL数据库分页
        Select * from 表名 limit startrow,pagesize
        (Pagesize为每页显示的记录条数)
    
    6.PostgreSQL数据库分页
        Select * from 表名 limit pagesize,offset startrow
        (Pagesize为每页显示的记录条数)
    复制代码

     

    到我的github上查看更多项目:https://github.com/ygj0930
    posted @ 2016-12-05 17:45 Charles_Yip 阅读( 8742) 评论( 2) 编辑 收藏
    展开全文
  • 数据库分页查询

    千次阅读 2014-12-07 13:09:26
    1) mysql select * from demo ...如果支持scrollable result,使用ResultSet的absolute方法直接移到查询起点,如果不支持的话,使用循环语句,rs.next一点点的移过去。 
  • JSP实现HTML网页中分页查询Mysql数据库数据主要有以下几个地方要注意: 使用rs的来计算页面数: rs.last(); RowAmount = rs.getRow(); 计算数据库中数据最大页面数 PageAmount = (RowAmount + PageSize - 1 )/ ...
  • 当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询。对于数据库分页查询,也有很多优化的方案。下面简单说一些方法。 一、一般分页...
  • 1.减少访问数据库次数,一个个去查替换成批量去查询,进行分页查询一次分页1000到3000个左右,sql 以union 的结构来查询2.将查询出的结果,根据集合中查询字段,转换成Map结构。3.使用多线程。...
  • 基于mybatis plus的数据库分页遍历工具 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import java.util.Collections; ...
  • Java web访问MySql数据库分页查询

    千次阅读 2015-09-14 21:28:39
    这时可以使用分页的方法,就是指定从数据库表的什么位置开始查询显示,以及指定显示的记录数目。 Mysql数据库提供了limit a,b的关键字,a是数据库表的查询起始位置,是个偏移量,b是指定本次查询的记录数目 下面是...
  • spring boot分页显示数据库中的数据,并且实现页面不刷新。具体使用了avalon.js和jquery技术,通过ajax提交数据
  • while循环-简化分页查询

    千次阅读 2016-09-09 12:50:06
    当数据量过大时,通常会采用分页查询的方式,循环处理数据。 比较常用的就是sql 中使用 limit 进行分页查询,然后for循环处理数据。但是这样的方式虽说可行,但是代码未免有些繁琐。 比如说:sql 语句 要写两个...
  • Java——JDBC操作数据库分页查询

    万次阅读 2016-10-09 13:09:44
    数据库的操作无非就是增删改查,其中数查询操作最为复杂,所以将查询单独讲解,我这里用的Mysql数据库 增删改操作 分页查询操作 1.查询结果以list返回 2.查询结果以jsonArray返回 3.查询总记录条数
  • Oracle数据库分页查询语句与优化

    千次阅读 2017-09-07 16:12:53
    回顾了之前做的项目,看到查询分页功能,发现有可以优化的地方。 总的来说优化过程有三个阶段: 一、 select * from (select A., rownum rn from (select from table_name)A) where rn between 21 and 40; 这条...
  • for循环与mysql的分页查询

    千次阅读 2017-05-16 14:39:58
    发送短信提醒,在查询中,因为生产上的数据数十万条,数据量大,如果直接一下子查出来,会对数据库造成很大的压力,用到分页查询,按照正常逻辑,查询表中总数量,然后根据当前页以及每页数量,循环数据库进行查询...
  • 避免查询经常访问数据库As the amount of data managed by an organization grows, the difficulty of managing and querying that data grows as well: more databases, more query languages, more gotchas to ...
  • MySQL中数据结果集分页功能的实现方法;数据库查询返回特定结果即分页查询
  • Mybatis-plus for循环分页查询处理,始终查询第一页数据,分页条件current不生效。 xml sql中关闭缓存,加入缓存刷新的配置 flushCache="true" useCache="false" Mybatis-plus 使用架构的默认修改时,传入空值...
  • MySQL数据库+jsp+servlet实现分页查询

    万次阅读 2015-12-23 22:03:26
    前一段做的那个jsp+servlet的小项目用到了分页查询,老师讲了之后实现到了网页上面,今天总结到博客上面,以后忘记了自己可以看,也分享给大家. 这个项目使用的数据库是MySQL,在MySQL数据库中使用select user_id,...
  • 数据库水平分库分表后的数据分页查询解决方案

    万次阅读 热门讨论 2018-09-14 08:08:51
    分库分表的策略,依项目需求而定,这里采用的是常规的做法:根据取模的方式,假设我们水平分库2个,每个库又水平拆表2个 既总共有4个表,查询的时候默认没有按照其他的条件进行排序,假设我们要查询第41页的数据,每页显示10...
  • 数据库分页

    2014-06-23 17:31:36
    数据库批量查询
  • 数据库中数据量非常大的情况下,不适合将所有的数据全部显示到一个页面中,同时为了节约程序以及数据库的资源,就需要对数据进行分页查询操作。通过JDBC实现分页的方法比较多,而且不同的数据库机制其分页的方式也...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 47,611
精华内容 19,044
关键字:

循环分页查询数据库