Maven:Mybatis中使用分页插件PageHelper查询分页数据信息

前言:一句话简单,方便,好用,那为什么不用呢?
这里面的测试项目用的是idea写的maven项目,所以基本的架包配置都在pom.xml中。并且底层用的是mybatis自动生成的mapper文件来查询数据库,如果各位同胞用的是eclipse开发或者基于约定来写的查询方法的话,也可以稍稍浏览一下,毕竟原理大家都是差不多的,希望对大家有帮助
当然如果你比本小白还小白的话,像项目都没有创建或者什么mapper文件,数据库配置文件conf.xml都没有的话,就真的不浪费你的时间,快转车吧!

  1. 首先以为maven项目易于管理,所以我们在pom.xml里面加入一个架包,写上下面这段代码
    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper</artifactId>
        <version>5.1.9</version>
    </dependency>

注意更改之后要import changes哦,右下角

  1. 相信大家的项目应该和我一样有一个conf.xml吧。在你的文件里填入下面代码
<!--分页拦截器-->
	<plugins>
		<!-- com.github.pagehelper为PageHelper类所在包名 -->
		<plugin interceptor="com.github.pagehelper.PageInterceptor">
			<!-- 使用下面的方式配置参数,后面会有所有的参数介绍 -->
			<property name="param1" value="value1"/>
		</plugin>
	</plugins>

这段代码是用来拦截你的sql语句的,即如果你要执行对数据库的操作时,会在你的sql后面加入一些东西,以达到分页的目的,至于里面的参数配置,暂时不会用到,如果你需要的,可以专车或者去官网查询
https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md

<!--分页拦截器-->
	<plugins>
		<!-- com.github.pagehelper为PageHelper类所在包名 -->
		<plugin interceptor="com.github.pagehelper.PageInterceptor">
			<!-- 使用下面的方式配置参数,后面会有所有的参数介绍 -->
			<property name="param1" value="value1"/>
		</plugin>
	</plugins>
  1. 创建测试类进行测试
import com.example.mapper.UserMapper;
import com.example.model.User;
import com.example.util.MybatisUtils;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.Test;

import java.util.List;

public class test {

    @Test
    public void test1(){
        SqlSessionFactory factory = MybatisUtils.getFactory();
        SqlSession session = factory.openSession();
        UserMapper userMapper = session.getMapper(UserMapper.class);

        /***
         * 分页实现,PageHelper拦截器,在查寻数据库之前会在sql后面增加一些东西
         */
        /**
         * 在pages中会有关于分页的所有信息
         * */
        /*第一种,加上下面这句话,代表你后面那句查询或查询第二页的数据,每页两条,但是没有返回你可能需要的分页信息,因此第二种方法更强大*/
        PageHelper.startPage(2, 2);
        //第二页的两条数据信息都在list中了,for遍历查看进行
        List<User> list = userMapper.selectByExample(null);
        

        /*第二种,查询到的所有信息,包括数据,分页信息,上一页,下一页,等都在page2中,要什么的话自己去取就行*/
        Page<User> page2 = PageHelper.startPage(2, 3).doSelectPage(()-> userMapper.selectByExample(null));
        /*在这里将分页信息拿出来*/
        List<User> users = page2.getResult();
        /**
         * 遍历查询到的users
         * */
        for(User user:users){
            System.out.println(user);
        }
    }
}


附上自己的结果
在这里插入图片描述如果你对结果表示怀疑,为什么会有三条数据呢?那我觉得你还是很认真的看了,因为我写了两种方法,第二种查询的时第二页的三条数据,而我也只打印第二种,所以就三条喽

PS:谢谢!如果上面的操作有什么不正确的地方或者有什么地方没有理清楚,欢迎留言指正,一起交流!

发布了93 篇原创文章 · 获赞 26 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_38261445/article/details/91349004
今日推荐