让 MyBatis 更好⽤的那些⼯具----MyBatis PageHelper

一、认识 MyBatis PageHelper

A、⽀持多种数据库
B、⽀持多种分⻚⽅式
C、SpringBoot ⽀持( https://github.com/pagehelper/pagehelper-spring-boot
       1、 pagehelper-spring-boot-starter

二、代码 

pom.xml

<dependency>
			<groupId>com.github.pagehelper</groupId>
			<artifactId>pagehelper-spring-boot-starter</artifactId>
			<version>1.2.10</version>
</dependency>

application.properies

mybatis.type-handlers-package=geektime.spring.data.mybatisdemo.handler
mybatis.configuration.map-underscore-to-camel-case=true
#页码
pagehelper.offset-as-page-num=true
pagehelper.reasonable=true
pagehelper.page-size-zero=true
pagehelper.support-methods-arguments=true

mapper/CoffeeMapper

package geektime.spring.data.mybatisdemo.mapper;

@Mapper
public interface CoffeeMapper {
    //查询所有,rowbounds
    @Select("select * from t_coffee order by id")
    List<Coffee> findAllWithRowBounds(RowBounds rowBounds);

    //查询所有,pageNum和pageSize
    @Select("select * from t_coffee order by id")
    List<Coffee> findAllWithParam(@Param("pageNum") int pageNum,
                                  @Param("pageSize") int pageSize);
}

schema.sql

create table t_coffee (
    id bigint not null auto_increment,
    name varchar(255),
    price bigint not null,
    create_time timestamp,
    update_time timestamp,
    primary key (id)
);

data.sql

insert into t_coffee (name, price, create_time, update_time) values ('espresso', 2000, now(), now());
insert into t_coffee (name, price, create_time, update_time) values ('latte', 2500, now(), now());
insert into t_coffee (name, price, create_time, update_time) values ('capuccino', 2500, now(), now());
insert into t_coffee (name, price, create_time, update_time) values ('mocha', 3000, now(), now());
insert into t_coffee (name, price, create_time, update_time) values ('macchiato', 3000, now(), now());

主类 

package geektime.spring.data.mybatisdemo;

@SpringBootApplication
@Slf4j
@MapperScan("geektime.spring.data.mybatisdemo.mapper")
public class MybatisDemoApplication implements ApplicationRunner {
	@Autowired
	private CoffeeMapper coffeeMapper;

	public static void main(String[] args) {
		SpringApplication.run(MybatisDemoApplication.class, args);
	}

	@Override
	public void run(ApplicationArguments args) throws Exception {
		coffeeMapper.findAllWithRowBounds(new RowBounds(1, 3))
				.forEach(c -> log.info("Page(1) Coffee {}", c));
		coffeeMapper.findAllWithRowBounds(new RowBounds(2, 3))
				.forEach(c -> log.info("Page(2) Coffee {}", c));

		log.info("===================");

		coffeeMapper.findAllWithRowBounds(new RowBounds(1, 0))
				.forEach(c -> log.info("Page(1) Coffee {}", c));

		log.info("===================");

		coffeeMapper.findAllWithParam(1, 3)
				.forEach(c -> log.info("Page(1) Coffee {}", c));
		List<Coffee> list = coffeeMapper.findAllWithParam(2, 3);
		PageInfo page = new PageInfo(list);
		log.info("PageInfo: {}", page);
	}
}
2023-04-23 20:37:12.744  INFO 11932 --- [           main] g.s.d.m.MybatisDemoApplication           : Page(1) Coffee Coffee(id=1, name=espresso, price=CNY 20.00, createTime=Sun Apr 23 20:37:11 CST 2023, updateTime=Sun Apr 23 20:37:11 CST 2023)
2023-04-23 20:37:12.745  INFO 11932 --- [           main] g.s.d.m.MybatisDemoApplication           : Page(1) Coffee Coffee(id=2, name=latte, price=CNY 25.00, createTime=Sun Apr 23 20:37:11 CST 2023, updateTime=Sun Apr 23 20:37:11 CST 2023)
2023-04-23 20:37:12.746  INFO 11932 --- [           main] g.s.d.m.MybatisDemoApplication           : Page(1) Coffee Coffee(id=3, name=capuccino, price=CNY 25.00, createTime=Sun Apr 23 20:37:11 CST 2023, updateTime=Sun Apr 23 20:37:11 CST 2023)
2023-04-23 20:37:12.753  INFO 11932 --- [           main] g.s.d.m.MybatisDemoApplication           : Page(2) Coffee Coffee(id=4, name=mocha, price=CNY 30.00, createTime=Sun Apr 23 20:37:11 CST 2023, updateTime=Sun Apr 23 20:37:11 CST 2023)
2023-04-23 20:37:12.754  INFO 11932 --- [           main] g.s.d.m.MybatisDemoApplication           : Page(2) Coffee Coffee(id=5, name=macchiato, price=CNY 30.00, createTime=Sun Apr 23 20:37:11 CST 2023, updateTime=Sun Apr 23 20:37:11 CST 2023)
2023-04-23 20:37:12.755  INFO 11932 --- [           main] g.s.d.m.MybatisDemoApplication           : ===================
2023-04-23 20:37:12.762  INFO 11932 --- [           main] g.s.d.m.MybatisDemoApplication           : Page(1) Coffee Coffee(id=1, name=espresso, price=CNY 20.00, createTime=Sun Apr 23 20:37:11 CST 2023, updateTime=Sun Apr 23 20:37:11 CST 2023)
2023-04-23 20:37:12.763  INFO 11932 --- [           main] g.s.d.m.MybatisDemoApplication           : Page(1) Coffee Coffee(id=2, name=latte, price=CNY 25.00, createTime=Sun Apr 23 20:37:11 CST 2023, updateTime=Sun Apr 23 20:37:11 CST 2023)
2023-04-23 20:37:12.764  INFO 11932 --- [           main] g.s.d.m.MybatisDemoApplication           : Page(1) Coffee Coffee(id=3, name=capuccino, price=CNY 25.00, createTime=Sun Apr 23 20:37:11 CST 2023, updateTime=Sun Apr 23 20:37:11 CST 2023)
2023-04-23 20:37:12.764  INFO 11932 --- [           main] g.s.d.m.MybatisDemoApplication           : Page(1) Coffee Coffee(id=4, name=mocha, price=CNY 30.00, createTime=Sun Apr 23 20:37:11 CST 2023, updateTime=Sun Apr 23 20:37:11 CST 2023)
2023-04-23 20:37:12.765  INFO 11932 --- [           main] g.s.d.m.MybatisDemoApplication           : Page(1) Coffee Coffee(id=5, name=macchiato, price=CNY 30.00, createTime=Sun Apr 23 20:37:11 CST 2023, updateTime=Sun Apr 23 20:37:11 CST 2023)
2023-04-23 20:37:12.765  INFO 11932 --- [           main] g.s.d.m.MybatisDemoApplication           : ===================
2023-04-23 20:37:12.855  INFO 11932 --- [           main] g.s.d.m.MybatisDemoApplication           : Page(1) Coffee Coffee(id=1, name=espresso, price=CNY 20.00, createTime=Sun Apr 23 20:37:11 CST 2023, updateTime=Sun Apr 23 20:37:11 CST 2023)
2023-04-23 20:37:12.855  INFO 11932 --- [           main] g.s.d.m.MybatisDemoApplication           : Page(1) Coffee Coffee(id=2, name=latte, price=CNY 25.00, createTime=Sun Apr 23 20:37:11 CST 2023, updateTime=Sun Apr 23 20:37:11 CST 2023)
2023-04-23 20:37:12.855  INFO 11932 --- [           main] g.s.d.m.MybatisDemoApplication           : Page(1) Coffee Coffee(id=3, name=capuccino, price=CNY 25.00, createTime=Sun Apr 23 20:37:11 CST 2023, updateTime=Sun Apr 23 20:37:11 CST 2023)
2023-04-23 20:37:12.859  INFO 11932 --- [           main] g.s.d.m.MybatisDemoApplication           : PageInfo: PageInfo{pageNum=2, pageSize=3, size=2, startRow=4, endRow=5, total=5, pages=2, list=Page{count=true, pageNum=2, pageSize=3, startRow=3, endRow=6, total=5, pages=2, reasonable=true, pageSizeZero=true}[Coffee(id=4, name=mocha, price=CNY 30.00, createTime=Sun Apr 23 20:37:11 CST 2023, updateTime=Sun Apr 23 20:37:11 CST 2023), Coffee(id=5, name=macchiato, price=CNY 30.00, createTime=Sun Apr 23 20:37:11 CST 2023, updateTime=Sun Apr 23 20:37:11 CST 2023)], prePage=1, nextPage=0, isFirstPage=false, isLastPage=true, hasPreviousPage=true, hasNextPage=false, navigatePages=8, navigateFirstPage=1, navigateLastPage=2, navigatepageNums=[1, 2]}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一点知趣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值