- 下载分页插件
http://github.com/pagehelper/Mybatis-PageHelper/blob/master/README_zh.md
- 导入分页插件jar包到工程中
- 在SqlMappingConfig.xml中配置分页插件
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>
<?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>
<!--用resource引入外部属性配置文件-->
<properties resource="db.properties">
<!--在properties内部用property定义属性-->
<!--如果外部配置文件有该属性,则内部定义的属性会被外部属性覆盖-->
<property name="jdbc.username" value="root"/>
<property name="jdbc.password" value="1234"/>
</properties>
<!--用来配置Mybatis中的设置-->
<settings>
<!--开启驼峰映射,为自定义的SQL语句服务-->
<!--设置启用数据库字段下划线映射到java对象的驼峰式命名属性,默认为false-->
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<typeAliases>
<!--单个别名定义-->
<typeAlias alias="Customer" type="demo2.domain.Customer"/>
<typeAlias alias="Order" type="demo2.domain.Order"/>
<typeAlias alias="Teacher" type="demo3.domain.Teacher"/>
<typeAlias alias="Student" type="demo3.domain.Student"/>
<!--批量别名定义,扫描整个包下的类,别名为类名(大小写不敏感)-->
<!--注意:如果当前包类与子包类重名,则会报异常,我们可以在类上使用注解@Alias("别名")-->
<!--<package name="demo2"/>-->
</typeAliases>
<!--配置分页插件-->
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>
<environments default="development">
<environment id="development">
<!--使用jdbc事务管理-->
<transactionManager type="JDBC"/>
<!--配置数据库连接池-->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!--加载映射文件-->
<mappers>
<!--<mapper resource="demo1/Mapping"/>-->
<mapper resource="demo2/mapper/Mapping"/>
<mapper resource="demo2/mapper/Mapping2"/>
<mapper resource="demo3/mapper/StudentMapping"/>
<mapper resource="demo3/mapper/TeacherMapping"/>
</mappers>
</configuration>
- 使用分页插件
@Test
public void test2() throws IOException {
this.init();
//1、创建sqlSession对象
SqlSession sqlSession = sqlSessionFactory.openSession();
//2、加载Mapper接口
CustomerMapper mapper = sqlSession.getMapper(CustomerMapper.class);
//3、调用Mapper中的方法执行sql
/*在查询之前设置分页插件*/
Page<Customer> page = PageHelper.startPage(2, 3);
List<Customer> customers = mapper.queryAll();
//在查询数据之后添加
PageInfo<Customer> pageInfo = new PageInfo<>(customers);
// 分页插件属性介绍
System.out.println("当前页:"+pageInfo.getPageNum());
System.out.println("每页显示记录数:"+pageInfo.getPageSize());
System.out.println("总页数:"+pageInfo.getPages());
System.out.println("总记录数:"+pageInfo.getTotal());
System.out.println("是否有上一页:"+pageInfo.isHasPreviousPage());
System.out.println("是否有下一页:"+pageInfo.isHasNextPage());
System.out.println("导航页码:"+ Arrays.toString(pageInfo.getNavigatepageNums()));
for (Customer customer:pageInfo.getList()) {
System.out.println(customer);
}
//4、关闭连接,释放资源
sqlSession.close();
}
运行结果