云主机测评网云主机测评网云主机测评网

云主机测评网
www.yunzhuji.net

java mybatis分页

Mybatis分页插件PageHelper可以方便地实现分页功能,只需在查询方法前调用PageHelper.startPage()即可。

MyBatis分页原理

MyBatis分页主要是通过拦截器(Interceptor)来实现的,当执行查询操作时,拦截器会对SQL语句进行拦截,然后修改SQL语句,添加分页相关的关键字和参数,最后执行修改后的SQL语句。

MyBatis分页实现步骤

1、引入MyBatis分页插件PageHelper

在项目的pom.xml文件中添加PageHelper依赖:

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

2、配置MyBatis分页插件

在MyBatis的配置文件mybatisconfig.xml中添加PageHelper插件配置:

<configuration>
    ...
    <plugins>
        <plugin interceptor="com.github.pagehelper.PageInterceptor">
            <!配置参数 >
            <property name="helperDialect" value="mysql"/>
            <property name="reasonable" value="true"/>
            <property name="supportMethodsArguments" value="true"/>
            <property name="params" value="count=countSql"/>
        </plugin>
    </plugins>
    ...
</configuration>

3、使用PageHelper进行分页查询

在需要进行分页查询的地方,调用PageHelper的静态方法startPage()设置分页参数,然后执行查询操作。

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {
    @Autowired
    private SqlSessionFactory sqlSessionFactory;
    public PageInfo<User> findUsersByPage(int pageNum, int pageSize) {
        // 开始分页,设置当前页码和每页显示的记录数
        PageHelper.startPage(pageNum, pageSize);
        // 获取SqlSession对象,执行查询操作
        try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
            UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
            List<User> users = userMapper.findAll();
            // 封装分页信息到PageInfo对象中返回
            return new PageInfo<>(users);
        }
    }
}

4、编写Mapper接口和映射文件,实现查询操作

编写UserMapper接口和对应的映射文件UserMapper.xml:

UserMapper接口:

package com.example.mapper;
import com.example.entity.User;
import java.util.List;
public interface UserMapper {
    List<User> findAll();
}

UserMapper.xml:

<?xml version="1.0" encoding="UTF8"?>
<!DOCTYPE mapper PUBLIC "//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis3mapper.dtd">
<mapper namespace="com.example.mapper.UserMapper">
    <select id="findAll" resultType="com.example.entity.User">
        SELECT * FROM user_table WHERE 1=1 LIMIT #{offset}, #{pageSize}
    </select>
</mapper>
打赏
版权声明:主机测评不销售、不代购、不提供任何支持,仅分享信息/测评(有时效性),自行辨别,请遵纪守法文明上网。
文章名称:《java mybatis分页》
文章链接:https://www.yunzhuji.net/internet/180874.html

评论

  • 验证码