MyBatisPlus_查询分页篇_入门试炼_02
生活随笔
收集整理的這篇文章主要介紹了
MyBatisPlus_查询分页篇_入门试炼_02
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. mapper接口
- 2. 映射文件
- 3. 實戰分頁
1. mapper接口
package com.gblfy.springboot.mybatisplus.mapper;import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.gblfy.springboot.mybatisplus.entity.User; import org.apache.ibatis.annotations.Param;import java.util.List;public interface UserMapper extends BaseMapper<User> {/*** 查詢所有 有條件會自動拼接在where 后邊當條件 單表操作** @param wrapper* @return*///自定義sql 無分頁List<User> selectAll(@Param(Constants.WRAPPER) Wrapper<User> wrapper);/*** 查詢所有 有條件會自動拼接在where 后邊當條件 單表操作** @param page* @param wrapper* @return*///自定義sql 分頁IPage<User> selectUserPage(Page<User> page, @Param(Constants.WRAPPER) Wrapper<User> wrapper);/*** 源碼分析:* 根據 entity 條件,查詢全部記錄(并翻頁)** @param page 分頁查詢條件(可以為 RowBounds.DEFAULT)* @param queryWrapper 實體對象封裝操作類(可以為 null)*/ // <E extends IPage<T>> E selectPage(E page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper); }2. 映射文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.gblfy.springboot.mybatisplus.mapper.UserMapper"><select id="selectAll" resultType="com.gblfy.springboot.mybatisplus.entity.User">select * from user ${ew.customSqlSegment}</select><select id="selectUserPage" resultType="com.gblfy.springboot.mybatisplus.entity.User">select * from user ${ew.customSqlSegment}</select></mapper>3. 實戰分頁
package com.gblfy.springboot.mybatisplus.mapper;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.gblfy.springboot.mybatisplus.entity.User; import lombok.extern.slf4j.Slf4j; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import java.util.List;@RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest @Slf4j public class UserSelectPageTest {@Autowiredprivate UserMapper userMapper;/*** myabtis 實現的分頁為什么還要分頁插件?* <p>* 1.mybatis實現得分頁時邏輯分頁或者叫做內存分頁不是物理分頁* 2.他是把符合條件的數據全部查詢出來放到內存中,然后返回你需要的那部分* 3.表中數據不多時,可以使用,速度慢一些;當數據量大時,建議使用物理分頁*/@Testpublic void selectPage() {QueryWrapper<User> queryWrapper = new QueryWrapper<>();queryWrapper.ge("age", 26);//總頁數+總記錄數Page<User> page = new Page<>(1, 2);IPage<User> iPage = userMapper.selectPage(page, queryWrapper);System.out.println("總頁數:" + iPage.getPages());System.out.println("總記錄數:" + iPage.getTotal());} //--------------------------------自定義分頁-----------------------------------/*** 其實就是按照MybatisPlus定義好的分頁模板,把咱們的實體放進去*/@Testpublic void selectMyPage() {QueryWrapper<User> queryWrapper = new QueryWrapper<>();queryWrapper.ge("age", 26);//總頁數+總記錄數Page<User> page = new Page<>(1, 2);//調用自定義sqlIPage<User> iPage = userMapper.selectUserPage(page, queryWrapper);System.out.println("總頁數:" + iPage.getPages());System.out.println("總記錄數:" + iPage.getTotal());List<User> userList = iPage.getRecords();userList.forEach(System.out::println);}/*** 源碼分析:* 根據 entity 條件,查詢全部記錄(并翻頁)** @param page 分頁查詢條件(可以為 RowBounds.DEFAULT)* @param queryWrapper 實體對象封裝操作類(可以為 null)*/ // <E extends IPage<T>> E selectPage(E page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);// 多表操作/*** 多表操作:* 原則:* 把多表操作的內容放到xml映射的sql中** 1.在xml文件中書寫多表操作的sql語句* 2.在mapper接口中,定義接口* 3.客戶端(controller)調用即可*/ }總結
以上是生活随笔為你收集整理的MyBatisPlus_查询分页篇_入门试炼_02的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ssh连接远程linux环境
- 下一篇: 第四篇:断路器(Hystrix)(Fin