MyBatis超详细讲解如何实现分页功能
目录
- 概述:
- 一般用法:
- student表:
- Student.java
- StudentMapper.xml
- StudentService.java
- StudentServiceImpl.java
- AppTest.java
- 测试结果:
- 使用分页参数RowBound
- StudentMapper.xml
概述:
当希望能直接在数据库语言中只检索符合条件的记录,不需要再通过程序对其做处理时,SQL语句分页技术便横空出世了,通过SQL语句实现分页只需要改变查询语句就能实现,即在SQL语句后面添加limit分页语句。说白了MySql对分页的支持是通过limit子语句来实现的。
limit语句的用法如下:
LIMIT [office,] rows
(其中office指相对于首行的偏移量(首行为0),rows指返回记录条数)
一般用法:
使用到的是学生表,持久化Student类,使用注解方式试用一下。
student表:
Student.java
StudentMapper.xml
StudentService.java
StudentServiceImpl.java
AppTest.java
测试结果:
确实返回了5条数据
使用分页参数RowBound
Mybatis框架不仅支持分页,它还内置了一个专门处理分页的类——rowBounds。
修改:
StudentMapper.xml
@Select("SELECT * from student") List<Student> getStudentByPage2(RowBounds rowBounds);
AppTest.java
RowBounds就是一个封装了offset和limit的简单类,只需要这两步就能轻松实现分页效果了。
到此这篇关于MyBatis超详细讲解如何实现分页功能的文章就介绍到这了,更多相关MyBatis 分页功能内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
Mybatis Limit实现分页功能
1. Limit实现分页 1.1 为什么需要分页 减少数据的处理量 1.2 使用Limit实现分页 select * from user limit startIndex,pageSize; # 注意是从startIndex+1开始查询 pageSize 个 select * from user limit 3; # [0,3] 1.3 使用mybatis实现分页(核心:SQL) 1.3.1 接口 UserMapper.java // limit实现分页 Map后面只能是 Integer 包装类
-
MyBatis拦截器实现分页功能的实现方法
MyBatis拦截器实现分页功能的实现方法 前言: 首先说下实现原理.使用拦截器拦截原始的sql,然后加上分页查询的关键字和属性,拼装成新的sql语句再交给mybatis去执行. 除了业务代码之外,需要写的东西不多,提几个关键的: 1.分页对象Page类.给该对象设置一个当前页数(前端给).总记录数(拦截器内赋值)2个参数,他就能帮你计算出分页sql语句用的2个参数. /** * 分页对应的实体类 */ public class Page { /** * 总条数 */ private int t
-
Mybatis Plus 自定义方法实现分页功能的示例代码
一般物理分页,即通过sql语句分页,都是在sql语句后面添加limit分页语句,在xml文件里传入分页的参数,再多配置一条sql,用于查询总数: <select id="queryStudentsBySql" parameterType="map" resultMap="studentmapper"> select * from student limit #{currIndex} , #{pageSize} </select&
-
MyBatis拦截器实现分页功能实例
由于业务关系 巴拉巴拉巴拉 好吧 简单来说就是 原来的业务是 需要再实现类里写 selectCount 和selectPage两个方法才能实现分页功能 现在想要达到效果是 只通过一个方法就可以实现 也就是功能合并 所以就有了下面的实践 既然是基于MyBatis 所以就先搭建一个Mybatis的小项目 1.01导入 mybatis和mysql的包 1.02.配置文件 Configuration.xml 中添加 <environments default="development"&
-
Spring MVC+MyBatis+MySQL实现分页功能实例
前言 最近因为工作的原因,在使用SSM框架实现一个商品信息展示的功能,商品的数据较多,不免用到分页,查了一番MyBatis分页的做法,终于是实现了,在这里记录下来分享给大家,下面来一起看看详细的介绍: 方法如下: 首先写一个分页的工具类,定义当前页数,总页数,每页显示多少等属性. /** * 分页 工具类 */ public class Page implements Serializable { private static final long serialVersionUID = -22
-
Mybatis实现联表查询并且分页功能
今天同学突然问我这个怎么搞. 然后自己搞了一下发现这个玩意有坑..就记录一下 0. 表结构 person表 cat表 一个person有多个cat 实体类就这么写 1. 实体类 Person实体类 @Data public class Person implements Serializable { private static final long serialVersionUID = -70682701290685641L; private Integer personid; private
-
MyBatis超详细讲解如何实现分页功能
目录 概述: 一般用法: student表: Student.java StudentMapper.xml StudentService.java StudentServiceImpl.java AppTest.java 测试结果: 使用分页参数RowBound StudentMapper.xml 概述: 当希望能直接在数据库语言中只检索符合条件的记录,不需要再通过程序对其做处理时,SQL语句分页技术便横空出世了,通过SQL语句实现分页只需要改变查询语句就能实现,即在SQL语句后面添加limit
-
MyBatis 超详细讲解动态SQL的实现
目录 情景: 概述: SQL元素: <if>: <choose>: <where>: <trim>: <set>: <foreach>: <bind>: 情景: 我们在使用JDBC或者其他类似的框架开发进行数据库开发时,通常要根据需求动手组装SQL,不用想都觉得是件很痛苦的事情了,而Mybatis框架提供的对SQL语句动态组装的功能,能很好地解决这个麻烦. 概述: 动态SQL是MyBatis框架的一个强大特性,MyBati
-
MyBatis 超详细讲解动态SQL的实现
目录 情景: 概述: SQL元素: <if>: <choose>: <where>: <trim>: <set>: <foreach>: <bind>: 情景: 我们在使用JDBC或者其他类似的框架开发进行数据库开发时,通常要根据需求动手组装SQL,不用想都觉得是件很痛苦的事情了,而Mybatis框架提供的对SQL语句动态组装的功能,能很好地解决这个麻烦. 概述: 动态SQL是MyBatis框架的一个强大特性,MyBati
-
Mybatis超详细讲解构建SQL方法
目录 1 SQL 构建对象介绍 1.1.1 介绍 1.1.2 实现准备 2 查询功能的实现 3 新增功能的实现 4 修改功能的实现 5 删除功能的实现 1 SQL 构建对象介绍 1.1.1 介绍 我们之前通过注解开发时,相关 SQL 语句都是自己直接拼写的.一些关键字写起来比较麻烦.而且容易出错. MyBatis 给我们提供了 org.apache.ibatis.jdbc.SQL 功能类,专门用于构建 SQL 语句 1.1.2 实现准备 编写指定调用方法 package com.yyl.sql;
-
Python OpenCV超详细讲解基本功能
目录 准备工作 转成灰度图像 高斯模糊 边缘检测 膨胀运算 腐蚀运算 准备工作 右击新建的项目,选择Python File,新建一个Python文件,然后在开头import cv2导入cv2库. 转成灰度图像 调用imread()方法获取我们资源文件夹中的图片lena.png cvtColor()方法可以让我们的图片转换成任意颜色,第一个参数是我们要转换的图片,第二个参数是要转成的颜色空间,cv2.COLOR_BGR2GRAY就是由BGR变为GRAY,我们日常生活中都是RGB三通道顺序,而在Op
-
MyBatis插件机制超详细讲解
目录 MyBatis的插件机制 InterceptorChain MyBatis中的Plugin MyBatis插件开发 总结 MyBatis的插件机制 MyBatis 允许在已映射语句执行过程中的某一点进行拦截调用.默认情况下,MyBatis 允许使用插件来拦截的方法调用包括: Executor(update, query, flushStatements, commit, rollback, getTransaction, close, isClosed) ParameterHandler(
-
超详细讲解Java秒杀项目登陆模块的实现
目录 一.项目前准备 1.新建项目 2.导入依赖 3.执行sql脚本 4.配置yml文件 5.在启动类加入注解 6.自动生成器 二.前端构建 1.导入layui 2.将界面放到template 3.在js目录下新建目录project 4.新建controller类 三.MD5加密 1.导入帮助包与exception包 2.新建vo类 3.登录方法: 4.密码加密 四. 全局异常抓获 1.给实体类userVo加入注解 2.导入帮助包validate,异常抓获 3.在UserController类方
-
SpringBoot超详细讲解多数据源集成
目录 一.多数据源使用场景与弊端 1.场景 2.弊端 二.使用步骤 1.引入库 2.多数据源配置文件 3.多数据源配置类 4.使用 总结 一.多数据源使用场景与弊端 1.场景 业务系统跨数据库 数据转存(这个现在太low了,应该高级点都不用) 系统集成 2.弊端 跨库业务事务问题 service.dao不能重复注入数据源 二.使用步骤 1.引入库 <!-- 多数据源支持 --> <dependency> <groupId>com.baomidou</groupId
-
java反射超详细讲解
目录 Java反射超详解✌ 1.反射基础 1.1Class类 1.2类加载 2.反射的使用 2.1Class对象的获取 2.2Constructor类及其用法 2.4Method类及其用法 Java反射超详解✌ 1.反射基础 Java反射机制是在程序的运行过程中,对于任何一个类,都能够知道它的所有属性和方法:对于任意一个对象,都能够知道它的任意属性和方法,这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制. Java反射机制主要提供以下这几个功能: 在运行时判断任意一个对象所属
-
超详细讲解Linux DHCP服务
目录 一.DHCP服务(动态主机配置协议) 1.背景 2.概述 3.优点 4.DHCP报文类型 5.DHCP 的分配方式 二.安装 DHCP 服务器 1.DHCP 服务软件 2.主配置文件 三.配置步骤 1.使用 DHCP 动态的给 PC 机分配 IP 地址 ① eNSP ②虚拟机 ③验证 ④进入命令行"ipconfig"测试 一.DHCP服务(动态主机配置协议) 1.背景 1.手动设置工作量大且容易冲突 2.用DHCP可以减少工作量和避免地址冲突 2.概述 作用:为局域网内的电脑分配
随机推荐
- TinyMCE syntaxhl插入代码后换行的修改方法
- 关于JavaScript限制字数的输入框的那些事
- javascript获取函数名称、函数参数、对象属性名称的代码实例
- dos利用wget.exe让杀毒软件升级更自动化
- IOS设置QQ小红点消除的方法(一键退朝)
- PHP HTTP 认证实例详解
- Python函数式编程指南(四):生成器详解
- JS模仿MSN右下角弹出提示框代码
- JS实现左右拖动改变内容显示区域大小的方法
- js鼠标移动在title中显示图片的效果代码
- .torrent文件的打开软件
- 浅谈function(函数)中的动态参数
- 在Zeus Web Server中安装PHP语言支持
- 关于PHP模板Smarty的初级使用方法以及心得分享
- Linux下的网络监听技术之二
- python cx_Oracle的基础使用方法(连接和增删改查)
- PHP排序算法系列之插入排序详解
- Struts2的配置文件方法小结
- 原生javascript自定义input[type=radio]效果示例
- PHP实现的文件浏览器功能简单示例