淘寶做網(wǎng)站費(fèi)用5118營銷大數(shù)據(jù)
分頁插件
MyBatis Plus自帶分頁插件,只要簡單的配置即可實(shí)現(xiàn)分頁功能
1. 添加配置類
@Configuration
@MapperScan("com.atguigu.mybatisplus.mapper") //可以將主類中的注解移到此處
public class MybatisPlusConfig {@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new
PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}}
2. 測試
@Test
public void testPage(){
//設(shè)置分頁參數(shù),第一個(gè)是設(shè)置當(dāng)前頁,第二個(gè)是每頁數(shù)量
Page<User> page = new Page<>(1, 3);
userMapper.selectPage(page, null);
//null表示不設(shè)置條件,查詢所有
//獲取分頁數(shù)據(jù)
List<User> list = page.getRecords();
list.forEach(System.out::println);
System.out.println("當(dāng)前頁:"+page.getCurrent());
System.out.println("每頁顯示的條數(shù):"+page.getSize());
System.out.println("總記錄數(shù):"+page.getTotal());
System.out.println("總頁數(shù):"+page.getPages());
System.out.println("是否有上一頁:"+page.hasPrevious());
System.out.println("是否有下一頁:"+page.hasNext());
}
結(jié)果:
獲取分頁的數(shù)據(jù):
User(id=1, name=Jone, age=18, email=test1@baomidou.com, isdel=0)
User(id=3, name=Tom, age=28, email=test3@baomidou.com, isdel=0)
User(id=4, name=張五, age=21, email=test4@baomidou.com, isdel=0)
當(dāng)前頁:
1
每頁顯示的條數(shù):
3
總記錄數(shù):
7
總頁數(shù):
3
是否有上一頁:
false
是否有下一頁:
true
3.xml自定義分頁
- 根據(jù)年齡查詢用戶列表,分頁顯示
- @param page 分頁對象 ,xml中可以從里面進(jìn)行取值 ,傳遞參數(shù) Page 即自動(dòng)分頁 ,必須放在第一位
- @param age 年齡
@Repository
public interface UserMapper extends BaseMapper<User> {Page<User> selectPageVo(@Param("page") Page<User> page,@Param("age") Integer age) ;
}
UserMapper.xml中編寫SQL
<select id="selectPageVo" resultType="User">
SELECT id,user_name,age,email FROM user WHERE age > # {age}
</select>
因?yàn)橛袀€(gè)resultType所以我們需要在application.yaml中的mybatis-pus上添加(實(shí)體類自己的包名字,這是我自己的,根據(jù)自己需求改)
type-aliases-package: com.qcby.springboot.model
測試:
@Test
public void testSelectPageVo(){
//設(shè)置分頁參數(shù)
Page<User> page = new Page<>(1, 5);
userMapper.selectPageVo(page, 20);
//獲取分頁數(shù)據(jù)
List<User> list = page.getRecords();
list.forEach(System.out::println);
System.out.println("當(dāng)前頁:"+page.getCurrent());
System.out.println("每頁顯示的條數(shù):"+page.getSize());
System.out.println("總記錄數(shù):"+page.getTotal());
System.out.println("總頁數(shù):"+page.getPages());
System.out.println("是否有上一頁:"+page.hasPrevious());
System.out.println("是否有下一頁:"+page.hasNext());
}
還有另一種的:可以直接使用querywrapper
@Test
public void test(){//設(shè)置分頁參數(shù)Page<User> page=new Page<User>(1,3);QueryWrapper<User> queryWrapper=new QueryWrapper<>();queryWrapper.ge("age",20);userMapper.selectPage(page,queryWrapper);List<User> list= page.getRecords();list.forEach(System.out::println);