Mybatis:PageHelper插件

本节是pagehelper插件的最小环境配置


mybatis最小环境的配置

https://blog.csdn.net/qq_36453423/article/details/103532348


1.pom.xml

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

2.StudentMapper.java

在接口中定义一个selectAll的方法
package net.dfrz.mapper;

import java.util.List;

import net.dfrz.entity.Student;

public interface StudentMapper 
{
	List<Student> selectStudentAll();
}

3.Student.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">
  <!-- namespace:命名空间,做sql隔离 -->
<mapper namespace="net.dfrz.mapper.StudentMapper">

<select id="selectStudentAll" parameterType="Integer" resultType="Student">
	select * from t_student
</select>
	
</mapper>

4.config.xml

把下面的加入进去

<!-- PageHelper第三方插件 -->
<plugins>
	<plugin interceptor="com.github.pagehelper.PageHelper">
		<property name="dialect" value="mysql" />
		<property name="offsetAsPageNum" value="false" />
		<property name="rowBoundsWithCount" value="true" />
		<property name="pageSizeZero" value="true" />
		<property name="reasonable" value="false" />
		<property name="supportMethodsArguments" value="false" />
		<property name="returnPageInfo" value="none" />
	</plugin>
</plugins>

完整的xml配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	
	<!-- 引入外部资源文件 -->
	<properties resource="mybatis/db/mysql.properties"></properties>
	
	<!-- 设置entity\bean包扫描,包下的所有entity类默认首字母小写后调用 -->
	<typeAliases>
	<!-- 下面两个都可以对应mapper/Student.xml的student这个类 -->
		<!-- <typeAlias type="net.dfrz.entity.Student"/> -->
		<package name="net.dfrz.entity" />
	</typeAliases>
	
	<!-- PageHelper第三方插件 -->
	<plugins>
		<plugin interceptor="com.github.pagehelper.PageHelper">
			<property name="dialect" value="mysql" />
			<property name="offsetAsPageNum" value="false" />
			<property name="rowBoundsWithCount" value="true" />
			<property name="pageSizeZero" value="true" />
			<property name="reasonable" value="false" />
			<property name="supportMethodsArguments" value="false" />
			<property name="returnPageInfo" value="none" />
		</plugin>
	</plugins>

	<!-- 配置信息 -->
	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
				<!-- 配置连接信息 -->
				<property name="driver" value="${jdbc.driverClass}" />
				<property name="url"
					value="${jdbc.url}" />
				<property name="username" value="${jdbc.username}" />
				<property name="password" value="${jdbc.password}" />
			</dataSource>
		</environment>
	</environments>

	<!-- 配置映射文件:用来配置SQL语句和结果及类型等 -->
	<mappers>
		<mapper resource="mybatis/mapper/Student.xml" />
		<!-- <mapper class="net.dfrz.mapper.StudentMapper"/> -->
	</mappers>
</configuration>

5.Test测试类

@Test
public void testPageHelper() throws Exception {
	String resource = "mybatis/config.xml";
	InputStream inputStream = Resources.getResourceAsStream(resource);
	SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

	// 创建会话
	SqlSession sqlSession = sqlSessionFactory.openSession();

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

	PageHelper.startPage(1, 3);

	List<Student> list = studentMapper.selectStudentAll();
	for (Student student : list) {
		System.out.println(student.getStuID());
	}
	
	sqlSession.close();
}

运行成功!

在这里插入图片描述

插件的属性设置

属性名 TURE 作用
rowBoundsWithCount 查询总item数目
reasonable 用户输入页码,pageNum<1,会定位到第一页,pageNum>pageNum.MAX,会定位到最后一页
pageSizeZero 如果觉得某个地方使用分页后,你仍然想通过控制参数查询全部的结果,你可以配置 pageSizeZero 为 true, 配置后,当 pageSize=0 或者 RowBounds.limit = 0 就会查询出全部的结果。

后续继续更新。。。

发布了53 篇原创文章 · 获赞 0 · 访问量 4149

猜你喜欢

转载自blog.csdn.net/qq_36453423/article/details/103553237