• 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";
          }
         
  • 相关阅读:
    错误 1324。文件夹路径 .. 中含有无效的字符
    linux下 tar解压 gz解压 bz2等各种解压文件使用方法
    取消EXCEL 2007/2010中邮箱地址的自动链接
    Windows2000/XP启动过程详解
    Ubuntu下安装apache2,mysql,php,wordpress.
    offcie2007,2010,2012中快速删除指定的页面.
    mysql连接,修改密码,增加用户,显示,导入导出
    键盘各按键的使用
    cvim 使用
    matlab基础知识(basic operation)
  • 原文地址:https://www.cnblogs.com/arvins/p/8474564.html
Copyright © 2020-2023  润新知