本节是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 就会查询出全部的结果。 |