2022.10.12:初学Java写简单的后台管理难免会受到写分页代码的折磨(我是被折磨了),但是接触到MyBatis框架之后,只需要几个配置和几行代码就可以完成以前好几倍的工作量,本篇文章简述了MyBatis分页插件的整体使用流程,如果能帮到你,倍感荣幸!
目录
一.MyBatis框架
首先简单介绍一下MyBatis框架,它是一款优秀的持久层框架。我们初学Java时需要自己来写持久层的代码为了达到连接数据库提交SQL语句,选择性的设置SQL语句的参数最后得到数据库返回的结果集,而使用MyBatis框架免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis可以通过简单的XML或注解来配置,把数据库和我们自己设置的对象实体类进行映射。
二.MyBatis框架分页插件使用流程
1.新建MAVEN项目并导入依赖
对于MAVEN项目就不做多介绍了,idea可以直接新建MAVEN项目,MAVEN项目建好后自带一个XML文件叫做pom.xml,在这个文件里可以完成依赖的导入和一些相关配置,我们需要做的是导入分页插件的依赖,推荐到https://mvnrepository.com/这个网站上来找依赖,直接在上面搜索我们需要用到的插件依赖pagehelper。
选择第一个,点进去后选择一个版本 ,我这里选择的是5.3.2
复制依赖信息到pom.xml文件中,注意外层还需要一个dependencies对标签。
<dependencies>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.3.2</version>
</dependency>
</dependencies>
2.在MyBatis全局配置文件中配置插件
MyBatis的使用是必须要有全局配置文件mybatis.cfg.xml,在全局配置文件的configuration对标签中配置如下代码,作用是让框架能够识别插件。
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>
注意:如果你的configuration对标签会报红色下划线,说明你的plugins标签放的位置不对,在DTD文件中有自己的一套识别顺序,plugins标签应该放在environment标签上面。
3.在测试类中测试插件
好了,到这步配置就结束了,可以来进行插件的测试了。测试的前提,你需要在全局配置文件中连接上你的数据库,而且你的数据库中存在需要测试的数据,Java方面你需要创建好对象实体类,而且mapper.xml映射文件中已经完成数据库列和对象实体类的映射,以及mapper.xml映射文件中存在相应的方法也就是对数据库的增删改查操作。
以上不再赘述,我们专心测试插件,默认上述流程已经完成。
以下流程是使用MyBatis框架的标准流程,但是在使用其他框架的前提下会得到简化。
public static void main(String[] args) throws IOException {
InputStream is = Resources.getResourceAsStream("mybatis.cfg.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
SqlSession sqlSession = factory.openSession();
PageHelper.startPage(1, 3);
StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);
List<Student> students = studentMapper.selectAll();
PageInfo<Student> pageInfo = new PageInfo<>(students);
System.out.println(pageInfo.getList());
System.out.println(pageInfo.getTotal());
}
代码前三行固定套路,获取MyBatis全局配置文件的输入流,加载全局配置文件后创建工厂类,使用工厂类可以创建SqlSession,SqlSession中封装了所有增删改查的方法。然后开启插件,有两个参数分别为当前的页数和每页有多少条数据,然后获取mapper.xml的接口对象,这里是采用了接口绑定,所以直接进行获取,通过接口对象可以直接调用方法。
重点的一步:创建PageInfo对象,将调用方法后返回的数组传进去,这里是查询所有的SQL,所有传进去的是一个集合,传进去后会返回一个pageInfo对象,这个对象中包含我们所有需要的信息,比如总条数,当前的页数,每页几条数据以及数据集合,可以通过get+想得到的信息进行查看,上面就是获取了当前页面的集合和总条数。
我们来看看结果:
可以看到返回的pageInfo对象中有很多信息,我们需要打印的当前页面的三条数据的集合,以及总共5条数据也打印了出来,测试完成。