SpringBoot分页组件PageHelper介绍及使用

2017-01-11 15:24:25来源:oschina作者:竹隐江南人点击



这篇主要说一下上篇介绍的mybatis分页组件,如果你们觉得没必要,非要自己封装分页,也是可以的啦,就像博主上一篇,自己写个分页实现,然后自己捣鼓就好了。
#maven依赖


mysql
mysql-connector-java
5.1.32



org.mybatis.spring.boot
mybatis-spring-boot-starter
${spring.mybatis.version}


org.mybatis.spring.boot
mybatis-spring-boot-autoconfigure
${spring.mybatis.version}



tk.mybatis
mapper-spring-boot-starter
1.0.0



com.github.pagehelper
pagehelper-spring-boot-starter
1.0.0

#实体公共类与Mapper公共类
实体公共类 BaseEntity.java,其中的get/set略。说一下`@GeneratedValue(strategy = GenerationType.IDENTITY)`主键增长策略,`@Transient`实体中如果有和数据库没有对应的属性必须要加这个注解
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
[@Transient](https://my.oschina.net/transient)
private Integer page = 1;
[@Transient](https://my.oschina.net/transient)
private Integer rows = 10;公用的Mapper.java类,这个类不能被扫描到,如下很简单空着就行
public interface BaseMapper extends Mapper, MySqlMapper {
}
#Mapper与mapper.xml还有实体类写法
Mapper类,mapper类继承BaseMapper类,下面的那个接口是扩展的,写自己的业务的。到这的时候,你的增删改查都具备了。
@Repository("userMapper")
public interface UserMapper extends BaseMapper{

/**
* 这个接口是自己业务接口
* @param name
* @return
*/
List queryUserInfoByName(@Param("name") String name);

}
mapper.xml文件,看这个文件中除了自己扩展的那个接口外其他的都木有,但是增删改查都有了哦。
<?xml version="1.0" encoding="UTF-8"?>









id, name, createDate





#Service里面使用
Service里面使用和平时一样是正常使用的,此处有展示一下mapper中含有的方法:
展示一下Mapper中已经有的默认方法
![输入图片说明](/2014th7cj/d/file/p/20170111/1wrh0tuvbcn.jpg "在这里输入图片标题")
![输入图片说明](/2014th7cj/d/file/p/20170111/4hrr1cxxb1k.jpg "在这里输入图片标题")
![输入图片说明](/2014th7cj/d/file/p/20170111/szqydgqs3po.jpg "在这里输入图片标题")
#Controller里面使用
从Controller里面使用,service返回的数据放到PageInfo中即可
@RequestMapping(value = "queryUserPage")
public PageInfo queryUserPage(User user){
List userInfoList =userService.getAllUser(user);
return new PageInfo(userInfoList);
}
#配置文件配置
配置文件如下,为何要配置这几个属性是根据自己需要来的,正常默认即可使用了。
#mybatis
mybatis:
config-location: classpath:META-INF/mybatis-config.xml

mapper:
mappers:
- com.dengzy.kuj.mybatis.common.mapping.BaseMapper
not-empty: true
identity: MYSQL

pagehelper:
helperDialect: mysql
reasonable: true#为了使用输入页数为负或者超出最大页时候使页数为最小或最大值
supportMethodsArguments: true
params: count=countSql
pageSizeZero: true #pageSize=0 or RowBounds.Limit = 0的时候就不适用分页,但是返回对象还是PageInfo#启动及浏览器访问![输入图片说明](/2014th7cj/d/file/p/20170111/lzzuy0qpbyr.jpg "在这里输入图片标题")
你说你不需要这么多参数,那你就不需要返回PageInfo对象就可以了,请求返回如下
[
{
"id": 2,
"page": 1,
"rows": 10,
"name": "user",
"createdate": 1483703436000
},
{
"id": 3,
"page": 1,
"rows": 10,
"name": "user",
"createdate": 1483703459000
},
{
"id": 4,
"page": 1,
"rows": 10,
"name": "user",
"createdate": 1483703660000
},
{
"id": 5,
"page": 1,
"rows": 10,
"name": "user",
"createdate": 1483703698000
}
]

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台