Mybatis利用分页插件PageHelper快速实现分页查询

网友投稿 547 2022-12-20

Mybatis利用分页插件PageHelper快速实现分页查询

Mybatis利用分页插件PageHelper快速实现分页查询

目录前言首先创建一个Maven项目数据库中创建一张表设置Mybatis配置文件编写pojo实体类和mapper接口和mapper映射文件创建测试类总结

前言

Mybatis算是对数据库操作的利器了。但是在处理分页的时候,Mybatis并没有什么特别的方法,一般需要自己去写limit子句实现,成本较高。好在有国内开发者写了一个PageHelper插件,可以帮助我们快速实现分页查询。

官网地址

首先创建一个Maven项目

导入相关依赖:

mysql

mysql-connector-java

8.0.25

junit

junit

4.13

test

com.github.pagehelper

pagehelper

5.2.1

org.mybatis

mybatis

3.5.7

log4j

log4j

1.2.17

记住导入PageHelper依赖:

com.github.pagehelper

pagehelper

5.2.1

数据库中创建一张表

设置Mybatis配置文件

在resources目录下,创建一个sqlMapConfig.xml文件,用于做一些全局的mybatis基本的配置,例如数据库连接信息,事务,mapper映射文件路径,日志实现,类的别名,也包含了分页插件的基本配置。

编写pgwnFTojo实体类和mapper接口和mapper映射文件

Student实体类

package pojo;

public class Student {

private Integer id;

private String name;

private String email;

private Integer age;

public Student() {

}

public Student(Integer id, String name, String email, Integer age) {

this.id = id;

this.name = name;

this.email = email;

this.age = age;

}

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getEmail() {

return email;

}

public void setEmail(String email) {

this.email = email;

}

public Integer getAge() {

return age;

}

public void setAge(Integer age) {

this.age = age;

}

@Override

public String toString() {

return "Student{" +

"id=" + id +

", name='" + name + '\'' +

", email='" + email + '\'' +

", age=" + age +

'}';

}

}

mapper接口

package mapper;

import pojo.Student;

import java.util.List;

public interface StudentMapper {

//查询所有学生

List selectAll();

}

Mapper映射文件

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

select * from student order by id

在sqlMapConfig文件中指定Mapper文件位置

编写MyBatisUtils

package utils;

import org.apache.ibatis.io.Resources;

import org.apache.ibatis.session.SqlSession;

import org.apache.ibatis.session.SqlSessionFactory;

import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;

import java.io.InputStream;

/**

* 工具类:创建SqlSession对象

*/

public class MyBatisUtil {

private static SqlSessionFactory factory = null;

static {

String config="sqlMapConfig.xml";

try {

InputStream inputStream =Resources.getResourceAsStream(config);

factory = new SqlSessionFactoryBuilder().build(inputStream);

} catch (IOException e) {

e.printStackTrace();

}

}

//创建方法,获取SqlSession对象

public static SqlSession getSqlSession(){

SqlSession session = null;

if( factory != null ){

session =factory.openSession();// openSession(true);

}

return session;

}

}

创建测试类

import com.github.pagehelper.PageHelper;

import mapper.StudentMapper;

import org.apache.ibatis.session.SqlSession;

import org.junit.Test;

import pojo.Student;

import utils.MyBatisUtil;

import java.util.List;

public class pageHelper_Test {

@Test

public void PageHelperTest(){

//获取sqlSession

SqlSession sqlSession = MyBatisUtil.getSqlSession();

//获取mapper代理

StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);

//调用PageHelper

PageHelper.startPage(2,2);

//查询所有学生

List studentList = mapper.selectAll();

//遍历结果List集合

studentList.forEach(student -> System.out.println(student));

//关闭sqlSession对象

sqlSession.close();

}

}

查看结果

可以看到sql语句,在mapper文件中并没有写limit,pageHelper已经帮我们加上了limit关键字完成了查询.OK了

总结

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:一体化政务服务平台运行(政务服务统一平台)
下一篇:一体化政务服务平台运维(政务服务统一平台)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~