zoukankan      html  css  js  c++  java
  • MySQL、Oracle分页查询

    1. mysql分页   
    2.  需用到的参数:   
    3.  pageSize 每页显示多少条数据   
    4.  pageNumber 页数 从客户端传来   
    5.  totalRecouds 表中的总记录数 select count (*) from 表名   
    6.  totalPages 总页数   
    7.  totalPages=totalRecouds%pageSize==0?totalRecouds/pageSize:totalRecouds/pageSize+1   
    8.  pages 起始位置   
    9.  pages= pageSize*(pageNumber-1)   
    10.  SQL语句:   
    11.  select * from 表名 limit pages, pageSize;   
    12.  mysql 分页依赖于关键字 limit 它需两个参数:起始位置和pageSize   
    13.  起始位置=页大小*(页数-1)   
    14.  起始位置=pageSize*(pageNumber -1)
    15. 一:分页需求:

      客户端通过传递start(页码),limit(每页显示的条数)两个参数去分页查询数据库表中的数据,那我们知道MySql数据库提供了分页的函数limit m,n,但是该函数的用法和我们的需求不一样,所以就需要我们根据实际情况去改写适合我们自己的分页语句,具体的分析如下:

      比如:

      查询第1条到第10条的数据的sql是:select * from table limit 0,10;   ->对应我们的需求就是查询第一页的数据:select * from table limit (1-1)*10,10;

      查询第10条到第20条的数据的sql是:select * from table limit 10,20;  ->对应我们的需求就是查询第二页的数据:select * from table limit (2-1)*10,10;

      查询第20条到第30条的数据的sql是:select * from table limit 20,30;  ->对应我们的需求就是查询第三页的数据:select * from table limit (3-1)*10,10;

      二:通过上面的分析,可以得出符合我们自己需求的分页sql格式是:select * from table limit (start-1)*limit,limit; 其中start是页码,limit是每页显示的条数。

      1. oracle分页  
      2.  pageSize 每页显示多少条数据   
      3.  pageNumber 页数 从客户端传来   
      4.  totalRecouds 表中的总记录数 select count (*) from 表名   
      5.  totalPages 总页数   
      6.  totalPages=totalRecouds%pageSize==0?totalRecouds/pageSize:totalRecouds/pageSize+1   
      7.  startPage 起始位置   
      8.  startPage= pageSize*(pageNumber-1)+1  
      9.  endPage=startPage+pageSize  
      10.  SQL语句  
      11.  select a.* from   
      12.  (  
      13.    select rownum num ,t.* from  表名 t where 某列=某值 order by id asc   
      14.  )a  
      15.  where a.num>=startPage and a.num<endPage  
        1. select t2.* from (
          select t1.*,rownum rn from (
          select employee_id,emp_name,email,phone_number,hire_date,j.job_title,
          salary,d.department_name from employeess e
          left join jobss j on e.job_id=j.job_id
          left join departmentss d on e.department_id=d.department_id
          ) t1 where rownum &lt;= #{up}
          ) t2 where rn &gt; #{down}
        2. Mapper:List<Employees> findByPageNo(@Param("up") int up, @Param("down") int down);
        3. Dao:
          public List<Employees> findByPageNo(int pageNo, int pageNum) {
          int up=pageNo*pageNum;
          int down=(pageNo-1)*pageNum;
          return employeeMapper.findByPageNo(up,down);
          }
        4. Service:
          public List<Employees> findByPageNo(int pageNo, int pageNum) {
          return employeeDao.findByPageNo(pageNo,pageNum);
          }
        5. Controller
          @RequestMapping("employeelist.do")
          public String list(int pageNo, Model model) {
          //每页数量
          int pageNum = 3;
          //总数量
          int count = employeeService.findMaxSize();
          //总页数
          int pageMax = count % pageNum == 0 ? count / pageNum : count / pageNum + 1;

          System.out.println("list---------");
          //页数判断
          if (pageNo < 1) {
          pageNo = 1;
          }
          if (pageNo > pageMax) {
          pageNo = pageMax;
          }

          List<Employees> all = employeeService.findByPageNo(pageNo, pageNum);
          //将结果返回给页面显示
          model.addAttribute("employeelist", all);
          model.addAttribute("pageNo", pageNo);
          model.addAttribute("pageMax", pageMax);


          return "employeelist";
          }
         
  • 相关阅读:
    JavaScript中的闭包
    SQL 备忘
    SqlServer 2005 升级至SP2过程中出现"身份验证"无法通过的问题
    unable to start debugging on the web server iis does not list an application that matches the launched url
    Freebsd 编译内核
    Freebsd 6.2中关于无线网络的设定
    【Oracle】ORA01219
    【Linux】Windows到Linux的文件复制
    【Web】jar命令行生成jar包
    【Linux】CIFS挂载Windows共享
  • 原文地址:https://www.cnblogs.com/arvins/p/8474564.html
Copyright © 2011-2022 走看看