步骤一、导入jar包
<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.2.5</version></dependency>
步骤二、配置SpringBoot文件
在application.yaml配置文件中添加以下配置:
#pagehelperpagehelper:helperDialect:mysqlreasonable:truesupportMethodsArguments:trueparams:count=countSqlreturnPageInfo:check
pagehelper.helper-dialect
: 指定分页插件使用哪种语言
pagehelper.offset-as-page-num
: 默认为 false
, 该参数对使用RowBounds
作为分页参数时有效,当为true
时,会将RowBounds
的offset
参数当成pageNum
使用
pagehelper.row-bounds-with-count
: 默认为false
,该参数对使用RowBounds
作为分页参数时有效,当该参数值为true
时,使用RowBounds
分页会进行count
查询
pagehelper.page-size-zero
: 默认为false
,当该参数为true
时,如果pageSize=0
或者RowBounds.limit=0
就会查询所有结果
pagehelper.reasonable
: 分页合理化参数,默认为false
,当该值为true
,pageNum<=0
默认查询第一页,pageNum>pages
时会查询最后一页,false
时直接根据参数进行查询
pagehelper.params
: 为了支持startPage(Object params)
方法,增加该参数来配置参数映射,用于从对象中根据属性名取值,可以配置pageNum,pageSize,pageSizeZero, reasonable
, 不配置映射是使用默认值, 默认值为pageNum=pageNum;pageSize=pageSize;count=countSql;reasonable=reasonable;pageSizeZero=pageSizeZero
pagehelper.support-methods-arguments
: 支持通过 Mapper
接口参数来传递分页参数,默认为false
, 分页插件会从查询方法的参数中根据params
配置的字段中取值,查找到合适的就进行分页
pagehelper.auto-runtime-dialect
: 默认为false
, 为true
时允许在运行时根据多数据源自动识别对应的方言进行分页
pagehelper.close-conn
: 默认为true
, 当使用运行是动态数据源或者没有设置helperDialect
属性自动获取数据库类型时,会自动获取一个数据库连接,通过该属性来设置是否关闭获取的这个连接,默认为true
关闭,false
不会自动关闭
步骤三、使用
@MapperpublicinterfaceArticleDao{List<Article>getArticleList();}
<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mappernamespace="com.singerw.dao.ArticleDao"><selectid="getArticleList"resultMap="articleMap">select*fromarticle</select><resultMapid="articleMap"type="Article"><idproperty="aID"column="a_id"/><resultproperty="articleTitle"column="article_title"/><resultproperty="articleContent"column="article_content"/><resultproperty="headImage"column="head_image"/><resultproperty="articleAuthor"column="article_author"/><resultproperty="typeNumber"column="type_number"/><resultproperty="pageviews"column="pageviews"/><resultproperty="createTime"column="create_time"/><resultproperty="isState"column="is_state"/></resultMap></mapper>
publicinterfaceArticleDaoService{ResponseData<Article>getArticleList(Integerpage,Integerlimit);}
@ServicepublicclassArticleDaoServiceImplimplementsArticleDaoService{@AutowiredprivateArticleDaoarticleDao;@OverridepublicResponseData<Article>getArticleList(Integerpage,Integerlimit){PageHelper.startPage(page,limit);List<Article>articleList=articleDao.getArticleList();PageInfo<Article>pageInfo=newPageInfo(articleList);ResponseData<Article>responseData=newResponseData(0,"success",pageInfo.getTotal(),articleList);returnresponseData;}}
@RestController@RequestMapping("/api")publicclassArticleController{@AutowiredprivateArticleDaoServicearticleDaoService;@GetMapping("/artList")publicResponseData<Article>getArticleList(@RequestParam(name="page",defaultValue="1")Integerpage,@RequestParam(name="limit",defaultValue="10")Integerlimit){ResponseData<Article>responseData=articleDaoService.getArticleList(page,limit);returnresponseData;}}