mybatis分页绝对路径写法过程详解

下面是关于"mybatis分页绝对路径写法过程详解"的完整攻略:

1.什么是Mybatis分页

Mybatis分页是指在数据库中查询出一批数据,然后将这批数据分页展示到页面上的一种技术。对于大数据量的系统来说,分页功能显得尤为重要。

2.Mybatis分页的实现

Mybatis分页有两种方式实现:传统方式和使用插件方式。这里重点讲解使用插件方式实现Mybatis分页。

2.1.使用插件方式实现分页

Mybatis官方提供了一个mybatis-pagehelper插件,这个插件可以帮助我们很方便的实现Mybatis分页功能。

具体实现步骤如下:

1.引入mybatis-pagehelper插件

Maven方式:

<dependency>
  <groupId>com.github.pagehelper</groupId>
  <artifactId>pagehelper</artifactId>
  <version>5.0.0</version>
</dependency>

Gradle方式:

compile group: 'com.github.pagehelper', name: 'pagehelper', version: '5.0.0'

2.在Mybatis配置文件中配置mybatis-pagehelper插件

<plugins>
    <plugin interceptor="com.github.pagehelper.PageInterceptor"/>
</plugins>

3.在Mapper.xml文件中使用分页查询

<select id="selectUsersByPage" resultMap="UserMap">
    SELECT * FROM USERS
</select>

4.在Java代码中调用分页查询方法

PageHelper.startPage(1, 10); // 查询第1页,每页10行记录
List<User> userList = userDao.selectUsersByPage();

2.2.绝对路径方式实现分页

在Mybatis实现分页的时候,可以通过绝对路径的方式来完成,这样写的好处是通用性更加强,可以自由复制到其他模块中使用。

具体实现步骤如下:

1.在根目录下创建p/page.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="page">
    <select id="selectByPage" resultMap="UserMap">
        SELECT * FROM USERS LIMIT #{start}, #{limit}
    </select>
</mapper>

2.在Mapper.xml文件中通过include标签引入p/page.xml文件

<mapper namespace="user">
    <include resource="p/page.xml"/>

    <select id="selectUsers" resultMap="UserMap">
        SELECT * FROM USERS
    </select>
</mapper>

3.在Java代码中调用分页查询方法

SqlSession sqlSession = MybatisUtils.getSqlSession();

Map<String, Integer> map = new HashMap<>();
map.put("start", 0); // 起始行
map.put("limit", 10); // 查询记录数

List<User> userList = sqlSession.selectList("page.selectByPage", map);

3.示例说明

3.1.使用插件方式示例

Mapper.xml文件:

<mapper namespace="userDao">
    <select id="selectUsersByPage" resultMap="UserMap">
        SELECT * FROM USERS
    </select>
</mapper>

Java代码:

PageHelper.startPage(1, 10); // 查询第1页,每页10行记录
List<User> userList = userDao.selectUsersByPage();

3.2.绝对路径方式示例

Mapper.xml文件:

<mapper namespace="userDao">
    <include resource="p/page.xml"/>

    <select id="selectUsers" resultMap="UserMap">
        SELECT * FROM USERS
    </select>
</mapper>

Java代码:

SqlSession sqlSession = MybatisUtils.getSqlSession();

Map<String, Integer> map = new HashMap<>();
map.put("start", 0); // 起始行
map.put("limit", 10); // 查询记录数

List<User> userList = sqlSession.selectList("page.selectByPage", map);

以上就是关于Mybatis分页绝对路径写法过程的详细介绍,希望可以对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mybatis分页绝对路径写法过程详解 - Python技术站

(0)
上一篇 2023年6月15日
下一篇 2023年6月15日

相关文章

  • Java方法的返回值及注意事项小结

    当我们在编写Java程序时,有时需要从方法中获取数据。在许多情况下,我们希望方法能够返回一个值,这就是Java方法的返回值。在本文中,将介绍Java方法的返回值以及注意事项。 什么是Java方法的返回值? Java方法的返回值是指当方法被调用时,此方法所返回的数据。方法的返回值用于与另一个方法或代码交互。一般情况下,Java方法返回值可以是任何基本数据类型(…

    Java 2023年5月26日
    00
  • java实现微信H5支付方法详解

    Java实现微信H5支付方法详解 微信H5支付是一种便捷的支付方式,它允许用户在微信H5浏览器中完成支付。在Java中,我们可以使用微信支付官方提供的Java SDK来实现微信H5支付功能。 以下是实现微信H5支付的详细步骤: Step1:获取微信支付相关信息 首先,我们需要去申请微信支付的相关信息,包括商户号和应用密钥等。申请完成后,我们可以在微信商户平台…

    Java 2023年6月15日
    00
  • Android编程之匿名内部类与回调函数用法分析

    Android编程之匿名内部类与回调函数用法分析 什么是匿名内部类 匿名内部类是一种没有类名的内部类,直接使用new来创建,并且实现了某个接口或者继承了某个类。使用场景通常是在需要实现较为简单的接口或者重写某个类中的方法时使用,避免了创建过多的类文件。 如何使用匿名内部类实现回调函数 在Android编程中,回调函数通常用于实现异步处理,将处理结果返回给调用…

    Java 2023年5月26日
    00
  • java 线程池的实现方法

    Java线程池是一种内部维护一定数量线程,用于处理多个并发任务的机制。使用线程池可以避免不断地创建和销毁线程,从而提高程序的性能和响应速度。本文将详细讲解Java线程池的实现方法,包括线程池的概述、核心参数和实现方式等,并通过示例说明其使用方法。 一、线程池概述 线程池是一种能够提高线程复用率、控制最大并发数、管理线程生命周期的机制。Java线程池中最主要的…

    Java 2023年5月26日
    00
  • Struts2 的国际化实现方式示例

    下面将结合代码示例详细讲解 Struts2 的国际化实现方式。 一、国际化实现的基本原理 Struts2 的国际化实现是通过多资源包机制来实现的。在一个 web 应用程序中,我们可以定义多个资源包,每个资源包对应不同的语言/国家 locale,当系统的 locale 和资源包的 locale 匹配时,Struts2 会自动使用该 locale 对应的资源文件…

    Java 2023年5月20日
    00
  • Java实现简单的弹球游戏

    Java实现简单的弹球游戏完整攻略 1. 简介 弹球游戏是一种经典的街机游戏,玩家需要控制一个挡板来接住反弹的球。该游戏通常需要使用图形界面来实现,本攻略通过使用Java Swing库来实现一个简单的弹球游戏。 2. 实现步骤 2.1 创建主框架 在Java Swing中,主框架(Frame)用于承载游戏的所有UI组件,我们需要先创建一个主框架。示例代码如下…

    Java 2023年5月19日
    00
  • Android UI设计与开发之ViewPager仿微信引导界面以及动画效果

    Android UI设计与开发之ViewPager仿微信引导界面以及动画效果 一. 引言 Android应用程序作为目前最主流的平台之一,UI设计的重要性越来越突出。ViewPager是Android UI界面设计中重要的一个组件,可以轻松实现左右滑动来切换不同View的效果,因此被广泛应用于app引导界面的设计中。 本文将详细讲解如何使用ViewPager…

    Java 2023年6月1日
    00
  • Java动态显示当前日期和时间

    下面我来详细讲解一下如何使用Java实现动态显示当前日期和时间。 步骤一:导入相关类 Java中与日期时间相关的类都位于java.time包中,因此我们需要导入该包并引入相关类,如下所示: import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; 其中,LocalDa…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部