使用mybatis实现分页查询示例代码分析
*******************************************分页查询开始***************************************************
/**
* 多参传入的方法:
* 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">
<
<span style="font-size:12px;">共${COUNT }页 / 第${PAGE}页 </span>
<c:if test="${PAGE>1 }">
<a href="fenye?page=1">首页</a>
<a href="fenye?page=${PAGE-1}">上页</a>
</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>
<a href="fenye?page=${COUNT}">尾页</a>
</c:if>
<span style="font-size:12px;">GO</span>
<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>
<span style="font-size:12px;">页</span>
>
</h3>
<script>
function goPage(page){
window.location.href="fenye?page="+page;
}
</script>
</div>
*******************************************分页查询结束***************************************************
使用mybatis实现分页查询示例代码分析的更多相关文章
- Mybatis包分页查询java公共类
Mybatis包分页查询java公共类 分页----对于数据量非常大的查询中.是不可缺少的. mybatis底层的分页sql语句因为须要我们自己去手动写.而实现分页显示的时候我们须要依据分页查询条 ...
- oracle分页查询及原理分析(总结)
oracle分页查询及原理分析(总结) oracle分页查询是开发总为常用的语句之一,一般情况下公司框架会提供只需套用,对于增删改查而言,查是其中最为关键也是最为难的一块,其中就有使用率最高的分页查询 ...
- 分页查询关键代码 多条件查询关键代码 删除选中商品关键代码 修改要先回显再修改 修改要先回显再修改 同一业务集中使用同一servlet的方法
分页查询关键代码: 通过servlet转发回来的各种信息进行分页的设计(转发回的信息有 分页查询的List集合 查询的页码 查询的条数 查询的数据库总条数 查询的总页码) 从开始时循环10次出现十个数 ...
- springmvc+mybatis 实现分页查询
为简化分页功能,设计了一个分页的JSP标签,只需要在页面使用分页标签,就可以完成所有页面的分页功能. 1. 项目结构和数据库设计 (1) 项目结构: (2) 数据库设计 2. PageModel.ja ...
- SpringBoot整合Mybatis关于分页查询的方法
最近公司在用到SpringBoot整合Mybatis时当web端页面数据增多时需要使用分页查询以方便来展示数据.本人对分页查询进行了一些步骤的总结,希望能够帮助到有需要的博友.如有更好的方式,也希望评 ...
- 亿级别记录的mongodb分页查询java代码实现
1.准备环境 1.1 mongodb下载 1.2 mongodb启动 C:\mongodb\bin\mongod --dbpath D:\mongodb\data 1.3 可视化mongo工具Robo ...
- spring-boot 集合mybatis 的分页查询
spring-boot 集合mybatis 的github分页查询 一.依赖包 <!-- mysql 数据库驱动. --> <dependency> <groupId&g ...
- mybatis之分页查询
1)StudentDao.java /** * 持久层*/ public class StudentDao { /** * 增加学生 */ public void add(Student studen ...
- Mybatis 使用分页查询亿级数据 性能问题 DB使用ORACLE
一般用到了mybatis框架分页就不用自己写了 直接用RowBounds对象就可以实现,但这个性能确实很低 今天我用到10w级得数据分页查询,到后面几页就迭代了很慢 用于记录 1.10万级数据如下 [ ...
随机推荐
- .Net知识大全(个人整理)
.Net知识大全 本章内容适用于对.NET有一定基础的或者是想通过本文章对.NET基础知识记不清楚的朋友,可以通过本文章进行回顾. 面试的时候可能也会遇到相应的题目,建议面试前进行回顾!!! 1.NE ...
- PLT与GOT
0x01 什么是PLT和GOT 名称: PLT : 程序链接表(PLT,Procedure Link Table) GOT : 重局偏移表(GOT, Global Offset Table) 缘由: ...
- 如何让使用create-react-app构建的项目在build过程中如何不生成.map文件
避免create-react-app的项目在build的过程中生成 .map 文件的方法:主要是更改 package.json 里面的 build 命令!正式进入修改步骤前,推荐安装 cross-en ...
- C语言学习书籍推荐《C语言程序设计 现代方法(第2版)》下载
下载地址:点我 C语言仍然是计算机领域的通用语言之一,但现在的C语言已经和当初的时候大不相同了.本书主要的一个目的就是通过一种“现代方法”来介绍C语言,书中强调标准C,强调软件工程,不再强调“手工优化 ...
- 浅谈 Attention 机制的理解
什么是注意力机制? 注意力机制模仿了生物观察行为的内部过程,即一种将内部经验和外部感觉对齐从而增加部分区域的观察精细度的机制.例如人的视觉在处理一张图片时,会通过快速扫描全局图像,获得需要重点关注的目 ...
- MYSQL语句强化练习
之前发现自己写sql不怎么得心应手,总是百度零零散散的学习一下,所以在空闲的时候自己就专门找一下mysql的强化题敲一下练习一下,简要记录一下,sql写着写着就会越来越熟练,总之要自己加油! 表结构 ...
- 如何使用百度EasyDL进行情感分析
使用百度EasyDL定制化训练和服务平台有一段时间了,越来越能体会到EasyDL的易用性.在此之前我也接触过不少的深度学习平台,如类脑平台.Google的GCP深度学习平台.AWS深度学习平台,但我觉 ...
- py+selenium 无法定位ShowModalDialog模态窗口【已解决】
问题:无法定位弹出的模态窗口. 前瞻: 模态窗口:关闭之前,无法操作其他窗口. 但是selenium无法定位到这类窗口,百度说是目前selenium不支持处理模态窗口. 目标:定位到窗口里面的元素,完 ...
- [leetcode] 63. Unique Paths II (medium)
原题 思路: 用到dp的思想,到row,col点路径数量 : path[row][col]=path[row][col-1]+path[row-1][col]; 遍历row*col,如果map[row ...
- PHP--仿微信, 通过登陆者用户名显示好友列表,显示头像和昵称
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...