在html怎么使用pageinfo数据,使用PageHelper插件分页时,如何对对象进行转换以及添加属性...

一、插件介绍

PageHelper是针对Mybaits的分页插件,支持任何复杂的单表、多表分页。

二、基本用法

以springboot为例,有两种方式配置,一种是传统的,引入依赖,编写配置类;一种是使用application.yml进行配置。

第一种

1.引入依赖

com.github.pagehelper

pagehelper

4.1.6

2.配置插件

/**

* @author Hanstrovsky

*/

@Configuration

public class MybatisConfig {

@Bean

public PageHelper pageHelper() {

PageHelper pageHelper = new PageHelper();

Properties properties = new Properties();

properties.setProperty("offsetAsPageNum", "true");

properties.setProperty("rowBoundsWithCount", "true");

properties.setProperty("reasonable", "true");

properties.setProperty("dialect", "mysql");

pageHelper.setProperties(properties);

return pageHelper;

}

}

第二种

1.引入依赖

com.github.pagehelper

pagehelper-spring-boot-starter

1.2.5

2.配置插件

pagehelper:

offset-as-page-num: true

row-bounds-with-count: true

page-size-zero: true

reasonable: true

auto-dialect: mysql

分页示范

public PageInfo findAll(Integer pageNum, Integer pageSize) {

//设置分页信息

PageHelper.startPage(pageNum, pageSize);

List students = studentDao.findAll();

PageInfo pageInfo = new PageInfo<>(students);

//返回分页对象

return pageInfo;

}

三、对象转换

如以上代码示范,分页对象中直接分装了与数据库映射的实体列表。但是在开发过程中很多时候都要进行对象的转换,将DO对象转换为DTO或者VO,加上或去掉一些属性。

可以这样做:

/**

* @author Hanstrovsky

*/

@Service

public class TestPage {

@Autowired

private StudentDao studentDao;

public PageInfo getAllStudent(Integer pageNum, Integer pageSize) {

// 1. 开启分页

PageHelper.startPage(pageNum, pageSize);

// 2. 从数据库中查询出

List studentDos = studentDao.findAll();

// 3. 这一步的作用主要是为了获取分页信息

PageInfo studentDoPageInfo = new PageInfo<>(studentDos);

// 4. 创建需要分页的VoList

List studentVos = new ArrayList<>();

// 5. 对象转换

for (StudentDO studentDO : studentDos) {

StudentVO studentVO = new StudentVO();

BeanUtils.copyProperties(studentDO, studentVO);

studentVO.setClassName("六年级二班");

studentVos.add(studentVO);

}

// 6.这一步的作用是将封装后的列表放到分页对象中

studentDoPageInfo.setList(studentVos);

return studentDoPageInfo;

}

}

这里有个细节,第3步,要先通过原list创建PageInfo对象,这样才能获取到分页的那些参数。之前想当然的试过先把Dolist转换为Volist,再创建pageInfo对象,那样做的话,并不能获取到分页信息。

其实之所以可以这样做,就巧在原对象的分页参数,和转换后的对象的分页参数是一致的,于是我们才可以狸猫换太子。

还有一种方式,也可以再创建一个pageInfo对象,将原pageInfo的参数拷贝过去,同样能达到目的,贴出来,供参考。

public class PageUtils {

public static PageInfo convertPageInfo(PageInfo pageInfoDo) {

// 创建Page对象,Page对象继承了ArrayList

Page page = new Page<>(pageInfoDo.getPageNum(), pageInfoDo.getPageSize());

page.setTotal(pageInfoDo.getTotal());

page.setStartRow(pageInfoDo.getStartRow());

//... 等等信息,可以按需要挨个设置

return new PageInfo<>(page);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值