*******************************************分页查询开始***************************************************
        /**
         * 多参传入的方法:
         *     1:多个不同类型的参数入参时,映射文件中可以不指定参数类型,
         *        接口中的方法使用注解,将注解指定的名字,传入映射文件相应属性中
         *     2:也可以把多个参数封装成对象,以对象类型入参
  * 分页查询
  * @param from  从第几条开始查...
  * @param pagesize  每页显示的记录数
  * @return  当前页对象的集合
  */
  public List<User> fenye(@Param("from")Integer from,@Param("pagesize")Integer pagesize);
******************
         <select id="fenye" resultType="entity.User">
  SELECT * FROM users u
  INNER JOIN role r ON u.`roleid`=r.`roleid`
                LIMIT #{from} ,#{pagesize}
  </select>
*****************************
         /**
   * 查询总记录数
   */
  public Integer count();
******************
         <select id="count" resultType="Integer">
  SELECT count(*) FROM users
  </select>

*****************************
    protected void service(HttpServletRequest req, HttpServletResponse res)
   throws ServletException, IOException {
  req.setCharacterEncoding("utf-8");
  res.setContentType("text/html;charset=utf-8");
  
  SqlSession session=MybatisUtil.getSession(); //获得mybatis的session对象
  try {
   Integer pagesize=3; //每页显示的记录数
   Integer page=null;  //当前页
   String pageQian=req.getParameter("page");
   if(pageQian !=null){
    page=Integer.parseInt(pageQian);
   }else{
    page=1;  //默认看第一页
   }
   /*
    * 数据库查询总页数
    */
   Integer count=session.getMapper(UserMapper.class).count();
   int totalyeshu=0;    //总页数
   if(count%pagesize==0){
    totalyeshu=count/pagesize;
   }else{
    totalyeshu=(count/pagesize)+1;
   }
   /*
    * 数据库查询当前页的数据
    */
   List<User> userList=session.getMapper(UserMapper.class).fenye((page-1)*pagesize, pagesize);
                        /*
    * 将数传给前台
    */
   req.setAttribute("USERLIST", userList);  //集合数据
   req.setAttribute("PAGE", page);  //当前页
   req.setAttribute("COUNT", totalyeshu);  //总页数
  } catch (Exception e) {
   e.printStackTrace();
  }finally{
   MybatisUtil.closeSession(session);
  }
  req.getRequestDispatcher("indexFenye.jsp").forward(req, res); //转发至主页
   }
*****************************
   <div>
      <h3 algin="right">
        &lt;
          <span style="font-size:12px;">共${COUNT }页 &nbsp;/&nbsp;第${PAGE}页   &nbsp;</span>
          <c:if test="${PAGE>1 }">
                <a href="fenye?page=1">首页</a>&nbsp;
                <a href="fenye?page=${PAGE-1}">上页</a>&nbsp;
          </c:if>
          <c:forEach begin="1" end="${COUNT }" var="i">
             <a href="fenye?page=${i}" >${i}</a>
          </c:forEach>
          <c:if test="${PAGE<COUNT }">
               <a href="fenye?page=${PAGE+1}">下页</a>&nbsp;
               <a href="fenye?page=${COUNT}">尾页</a>&nbsp;
          </c:if>
     
          <span style="font-size:12px;">GO</span>&nbsp;
          <select id="goTo" onchange="goPage(this.value)" >
             <c:forEach  begin="1" end="${COUNT }" var="i" >
                  <option value="${i }" ${i==PAGE?"selected='selected'":"" } >${i }</option>
             </c:forEach>
          </select>
          &nbsp;<span style="font-size:12px;">页</span>
       &gt;
     </h3>
     <script>
        function goPage(page){
            window.location.href="fenye?page="+page;
        }
     </script>
   </div>

*******************************************分页查询结束***************************************************

使用mybatis实现分页查询示例代码分析的更多相关文章

  1. Mybatis包分页查询java公共类

    Mybatis包分页查询java公共类   分页----对于数据量非常大的查询中.是不可缺少的. mybatis底层的分页sql语句因为须要我们自己去手动写.而实现分页显示的时候我们须要依据分页查询条 ...

  2. oracle分页查询及原理分析(总结)

    oracle分页查询及原理分析(总结) oracle分页查询是开发总为常用的语句之一,一般情况下公司框架会提供只需套用,对于增删改查而言,查是其中最为关键也是最为难的一块,其中就有使用率最高的分页查询 ...

  3. 分页查询关键代码 多条件查询关键代码 删除选中商品关键代码 修改要先回显再修改 修改要先回显再修改 同一业务集中使用同一servlet的方法

    分页查询关键代码: 通过servlet转发回来的各种信息进行分页的设计(转发回的信息有 分页查询的List集合 查询的页码 查询的条数 查询的数据库总条数 查询的总页码) 从开始时循环10次出现十个数 ...

  4. springmvc+mybatis 实现分页查询

    为简化分页功能,设计了一个分页的JSP标签,只需要在页面使用分页标签,就可以完成所有页面的分页功能. 1. 项目结构和数据库设计 (1) 项目结构: (2) 数据库设计 2. PageModel.ja ...

  5. SpringBoot整合Mybatis关于分页查询的方法

    最近公司在用到SpringBoot整合Mybatis时当web端页面数据增多时需要使用分页查询以方便来展示数据.本人对分页查询进行了一些步骤的总结,希望能够帮助到有需要的博友.如有更好的方式,也希望评 ...

  6. 亿级别记录的mongodb分页查询java代码实现

    1.准备环境 1.1 mongodb下载 1.2 mongodb启动 C:\mongodb\bin\mongod --dbpath D:\mongodb\data 1.3 可视化mongo工具Robo ...

  7. spring-boot 集合mybatis 的分页查询

    spring-boot 集合mybatis 的github分页查询 一.依赖包 <!-- mysql 数据库驱动. --> <dependency> <groupId&g ...

  8. mybatis之分页查询

    1)StudentDao.java /** * 持久层*/ public class StudentDao { /** * 增加学生 */ public void add(Student studen ...

  9. Mybatis 使用分页查询亿级数据 性能问题 DB使用ORACLE

    一般用到了mybatis框架分页就不用自己写了 直接用RowBounds对象就可以实现,但这个性能确实很低 今天我用到10w级得数据分页查询,到后面几页就迭代了很慢 用于记录 1.10万级数据如下 [ ...

随机推荐

  1. Git使用小技巧之Stash命令藏储零乱分支

     想要获取更多文章可以访问我的博客 - 代码无止境. 在开发的过程中可能会经常出现下面这种情况,我们正在开发某个功能,当前分支的内容比较乱,不太适合提交,而此时我们需要切换到其他分支上处理一些事情.这 ...

  2. C++20 的 Modules

    最近看了两篇关于 C++ 20 Modules 很有意思的文章,戳: <Understanding C++ Modules: Part 1: Hello Modules, and Module ...

  3. python的列表使用

    1.什么是列表 列表是由一系列按特定顺序排列的元素,元素之间可以没有任何关系:可以创建空列表,也可以将任何东西添加进列表. 列表用 [ ] 表示: cars = ['golf', 'magotan', ...

  4. 洛谷P2285 【[HNOI2004]打鼹鼠】

    每次打鼹鼠的机器人总是从某一次打鼹鼠的地方走过来的 对鼹鼠出现时间从小到大排序 f[i]表示到第i个鼹鼠(打第i个)最多能打多少个鼹鼠 f[i]=max(f[j]+1)f[i]=max(f[j]+1) ...

  5. Shiro认证时的密码比对

    在前面一节<Shiro在Web环境下集成Spring的大致工作流程>的最后一步中提到由Shiro完整密码比对. 那么具体是怎么工作的? 1,既然shiro会把密码来进行比对,当然会调用 U ...

  6. xpath路径的写法

    关于xpath路径的写法 1.选取节点 表达式 描述 nodename 选取此节点的所有子节点. / 从根节点选取. // 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置. . 选取当前节点 ...

  7. ASP.NET登录验证码解决方案

    目录 #验证码效果图 #代码 0.html代码 1.Handler中调用验证码生成类 2.验证码图片绘制生成类 3.高斯模糊算法类 #注意 #参考 在web项目中,为了防止登录被暴力破解,需要在登录的 ...

  8. 初学者的linux - 基本知识篇

    1.Linux系统结构 Linux是一套免费使用和自由传播的类Unix操作系统,它是一种倒树结构. “/”就是系统的顶级目录,称作根目录,“/bin,/root,/home,/etc.."这 ...

  9. Liunx环境下配置matplotlib库使用中文绘图

    最近在使用matplotlib库的过程中需要用到中文绘图,在网上找了好多种方法,最终用一种方法解决了,在此记录. 首先Linux是有自己的中文字体的,叫做"Droid Sans Fallba ...

  10. SSM - Mybatis SQL映射文件

    MyBatis 真正的力量是在映射语句中.和对等功能的jdbc来比价,映射文件节省很多的代码量.MyBatis的构建就是聚焦于sql的. sql映射文件有如下几个顶级元素:(按顺序) cache配置给 ...