分页插件
1. 分页原理
-
SQL分页:limit {startIndex} {pageSize}
-
startIndex:查询结果的开始索引 = (当前页数 -1)* 每页显示条数
-
pageSize:每页显示条数
2. 分页插件
使用步骤:
-
导入依赖
-
添加插件配置
-
使用分页插件
-
导入依赖
<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.10</version>
</dependency>
- 配置插件
mybatis-config.xml
<plugins>
<!-- com.github.pagehelper为PageHelper类所在包名 -->
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<!-- 选择mysql数据库的分页方式 -->
<property name="helperDialect" value="mysql"/>
<!--分页会进行count查询:共X条-->
<property name="rowBoundsWithCount" value="true"/>
</plugin>
</plugins>
- 使用分页插件
@Test
public void limitTest(){
SqlSession session = MyBatisMapperUtils.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
//1. 开启分页 : pageNum 第几页,从1开始, pageSize 每页显示条数
PageHelper.startPage(1,3);
//2. 条件查询
List<User> users = mapper.selectAll();
//3. 将查询结果交给PageInfo处理
PageInfo<User> pageInfo = new PageInfo<>(users);
//分页相关结果
long total = pageInfo.getTotal(); //总条数
int pageNum = pageInfo.getPageNum(); //当前页
int pages = pageInfo.getPages(); //总页数
List<User> pageInfoList = pageInfo.getList(); //当前页数据
System.out.println("总条数:"+total+" 当前页:"+pageNum+" 总页数"+pages);
System.out.println("当前页数据....");
for (User user : pageInfoList) {
System.out.println(user);
}
MyBatisMapperUtils.closeSession();
}
11. 逆向工程
根据数据库表生成实体类和mapper接口、mapper.xml
https://github.com/zouzg/mybatis-generator-gui
git clone https://github.com/zouzg/mybatis-generator-gui
cd mybatis-generator-gui
mvn jfx:jar
cd target/jfx/app/
java -jar mybatis-generator-gui.jar