单页产品网站源码带后台,二道江网站建设,南京谷歌seo,免费虚拟主机官网一、limit分页
mysql的limit后面两个数字#xff1a; 第一个数字#xff1a;startIndex#xff08;起始下标。下标从0开始。#xff09; 第二个数字#xff1a;pageSize#xff08;每页显示的记录条数#xff09; 假设已知页码pageNum#xff0c;还有每页显示的记录…一、limit分页
mysql的limit后面两个数字 第一个数字startIndex起始下标。下标从0开始。 第二个数字pageSize每页显示的记录条数 假设已知页码pageNum还有每页显示的记录条数pageSize第一个数字可以动态的获取吗 startIndex (pageNum - 1) * pageSize 所以标准通用的mysql分页SQL
select *
from tableName ......
limit (pageNum - 1) * pageSize, pageSize
使用mybatis应该怎么做继续在mybatis-008-select中写代码
第一步、CarMapper接口
package com.powernode.mybatis.mapper;import com.powernode.mybatis.pojo.Car;
import org.apache.ibatis.annotations.Param;import java.util.List;public interface CarMapper {/*** 通过分页的方式获取Car列表* param startIndex 页码* param pageSize 每页显示记录条数* return*/ListCar selectAllByPage(Param(startIndex) Integer startIndex, Param(pageSize) Integer pageSize);
}
第二步、CarMapper.xml
?xml version1.0 encodingUTF-8 ?
!DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtdmapper namespacecom.powernode.mybatis.mapper.CarMapperselect idselectAllByPage resultTypeCarselect * from t_car limit #{startIndex},#{pageSize}/select
/mapper
第三步、测试类
package com.powernode.mybatis.test;import com.powernode.mybatis.mapper.CarMapper;
import com.powernode.mybatis.pojo.Car;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;import java.util.List;public class PageTest {Testpublic void testPage()throws Exception{SqlSessionFactory sqlSessionFactory new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream(mybatis-config.xml));SqlSession sqlSession sqlSessionFactory.openSession();CarMapper mapper sqlSession.getMapper(CarMapper.class);// 页码Integer pageNum 2;// 每页显示记录条数Integer pageSize 3;// 起始下标Integer startIndex (pageNum - 1) * pageSize;ListCar cars mapper.selectAllByPage(startIndex, pageSize);cars.forEach(car - System.out.println(car));sqlSession.commit();sqlSession.close();}
}第四步、查看执行结果 获取数据不难难的是获取分页相关的数据比较难。可以借助mybatis的PageHelper插件。
二、PageHelper插件
第一步引入依赖pom.xml
dependencygroupIdcom.github.pagehelper/groupIdartifactIdpagehelper/artifactIdversion5.3.1/version
/dependency
第二步在mybatis-config.xml文件中配置插件mybatis-config.xml
typeAliases标签下面进行配置
pluginsplugin interceptorcom.github.pagehelper.PageInterceptor/plugin
/plugins
第三步编写Java代码
第一步、CarMapper接口
ListCar selectAll();
第二步、CarMapper.xml
select idselectAll resultTypeCarselect * from t_car
/select
第三步、测试类
关键点 在查询语句之前开启分页功能。在查询语句之后封装PageInfo对象。PageInfo对象将来会存储到request域当中。在页面上展示。 Test
public void testPageHelper() throws Exception{SqlSessionFactory sqlSessionFactory new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream(mybatis-config.xml));SqlSession sqlSession sqlSessionFactory.openSession();CarMapper mapper sqlSession.getMapper(CarMapper.class);// 开启分页PageHelper.startPage(2, 2);// 执行查询语句ListCar cars mapper.selectAll();// 获取分页信息对象PageInfoCar pageInfo new PageInfo(cars, 5);System.out.println(pageInfo);
}
第四步、查看执行结果
PageInfo{pageNum2, pageSize2, size2, startRow3, endRow4, total5, pages3, listPage{counttrue, pageNum2, pageSize2, startRow2, endRow4, total5, pages3, reasonablefalse, pageSizeZerofalse}[car{id32, carNum2001, brand兰博基尼, guidePrice100.0, produceTime1998-10-11, carType燃油车}, car{id33, carNum2001, brand兰博基尼, guidePrice100.0, produceTime1998-10-11, carType燃油车}], prePage1, nextPage3, isFirstPagefalse, isLastPagefalse, hasPreviousPagetrue, hasNextPagetrue, navigatePages5, navigateFirstPage1, navigateLastPage3, navigatepageNums[1, 2, 3]}
PageInfo{
pageNum2, pageSize2, size2, startRow3, endRow4, total5, pages3, listPage{counttrue, pageNum2, pageSize2, startRow2, endRow4, total5, pages3, reasonablefalse, pageSizeZerofalse}
[car{id32, carNum2001, brand兰博基尼, guidePrice100.0, produceTime1998-10-11, carType燃油车},
car{id33, carNum2001, brand兰博基尼, guidePrice100.0, produceTime1998-10-11, carType燃油车}],
prePage1, nextPage3, isFirstPagefalse, isLastPagefalse, hasPreviousPagetrue, hasNextPagetrue, navigatePages5, navigateFirstPage1, navigateLastPage3, navigatepageNums[1, 2, 3]}