Springboot+Mybatis+redis+postman項目實戰總目錄*
SpringBoot+Mybatis+PostMan(三):學習過濾器
SpringBoot+Mybatis+PostMan(四):學習攔截器
SpringBoot+Mybatis+PostMan(五):token登陸認證過程一(token生成與認證)
SpringBoot+Mybatis+PostMan(五):token登陸認證過程二(redis緩存引入)
SpringBoot+Mybatis+PostMan(六):token登陸認證過程三(redis封裝與干掉原來session,避免用戶重復登陸)
番外篇:SpringBoot 用戶注冊時經MD5加密存入數據庫
第二篇章:用戶角色權限訪問控制
SpringBoot+Mybatis+PostMan(七):用戶角色權限訪問控制入門(數據模擬實現,不帶數據庫)
SpringBoot+Mybatis+PostMan(八):用戶角色權限訪問控制一(數據庫用戶角色表查詢組合)
SpringBoot+Mybatis+PostMan(九):用戶角色權限訪問控制二(加入資源表和資源角色對應表)
SpringBoot+Mybatis+PostMan(十):用戶角色權限訪問控制三(禁用session、啟用token並集成redis)
工具:
idea2019
前端模擬實現:postman
分頁查詢實現 先做准備工作。
一、准備工作
1. 定義PageBean實體類,記錄分頁信息
package testdemo.util; public class PageBean { private Integer currentPage; private Integer startIndex; private Integer pageSize=5; private Integer totalCount; private Integer totalPage; public Integer getCurrentPage() { return currentPage; } public void setCurrentPage(Integer currentPage) { this.currentPage = currentPage; this.startIndex = (this.currentPage-1)*this.pageSize ; } public Integer getPageSize() { return pageSize; } public void setPageSize(Integer pageSize) { this.pageSize = pageSize; } public Integer getTotalCount() { return totalCount; } public void setTotalCount(Integer totalCount) { this.totalCount = totalCount; this.totalPage = (int)Math.ceil((this.totalCount*1.0/this.pageSize)); } public Integer getTotalPage() { return totalPage; } public void setTotalPage(Integer totalPage) { this.totalPage = totalPage; } public Integer getStartIndex() { return startIndex; } public void setStartIndex(Integer startIndex) { this.startIndex = startIndex; } }
准備工作完成,進行分頁查詢。
二、通過傳遞當前頁和頁面大小兩個參數進行分頁,進而查詢所有條數據
1. UserController.java中:
/* * 分頁查詢所有條數據 * */ @GetMapping("/selectStartIndexAndPageSize") public Result select(@RequestParam("currentPage")int currentPage , @RequestParam("pageSize") int pageSize){ //PageHelper.startPage(1,2); //List<User> userList = userService.select(); List<User> selectForPage = userService. selectForPage1((currentPage-1)*pageSize, pageSize) ; for (User user : selectForPage) { System.out.println(user); } return Results.successWithData(selectForPage, BaseEnums.SUCCESS.code(),BaseEnums.SUCCESS.desc()); }
2. UserService.java中:
/* * 分頁查詢1 * @param 起始頁面 * @param 數據條數 * */ public List<User> selectForPage1(int startIndex , int pageSize);
3. UserServiceImpl.java中:
@Override public List<User> selectForPage1(int startIndex , int pageSize){ return userMapper.selectForPage1(startIndex , pageSize) ; }
4. UserMapper.Java中:
//分頁查詢 通過開始頁和數據條數進行查詢 public List<User> selectForPage1(int startIndex , int pageSize) ;
5. UserMapper.xml中:
<!--查詢1--> <select id="selectForPage1" resultType="User"> select * from sys_user limit #{param1},#{param2} </select>
6. 前端實現為:通過參數數值控制分頁首頁和頁面數據多少
三、通過傳遞當前頁和頁面大小兩個參數進行分頁,在傳遞之前將兩個參數裝載為map進行傳遞,進而查詢所有條數據
1. UserController.java中:
/* * 查詢所有條數據 * */ @GetMapping("/selectByMap") public Result select1(@RequestParam("currentPage")int currentPage , @RequestParam("pageSize") int pageSize){ //PageHelper.startPage(1,2); //List<User> userList = userService.select(); Map<String , Object> map=new HashMap<>(); map.put("startIndex" , (currentPage-1)*pageSize); map.put("pageSize" , pageSize) ; List<User> selectForPage2 = userService.selectForPage2(map) ; for (User user : selectForPage2) { System.out.println(user); } return Results.successWithData(selectForPage2, BaseEnums.SUCCESS.code(),BaseEnums.SUCCESS.desc()); }
2. UserService.java中:
/* * 分頁查詢2 * @param map類型 * */ public List<User> selectForPage2(Map<String, Object> map);
3. UserServiceImpl.java中:
public List<User> selectForPage2(Map<String, Object> map){ return userMapper.selectForPage2(map); }
4. UserMapper.Java中:
//分頁查詢 通過map進行查詢 public List<User> selectForPage2(Map<String, Object> map);
5. UserMapper.xml中:
<!-- 查詢2--> <select id="selectForPage2" resultType="User"> select * from sys_user limit #{startIndex},#{pageSize} </select>
6. 前端實現為:通過參數數值控制分頁首頁和頁面數據多少
四、通過傳遞當前頁和頁面大小兩個參數進行分頁,在傳遞之前將兩個參數裝載到pageBean對象中進行傳遞,進而查詢所有條數據
1. UserController.java中:
/* * 查詢所有條數據 * */ @GetMapping("/selectByPageBean") public Result selectByPageBean(@RequestParam("currentPage")int currentPage , @RequestParam("pageSize") int pageSize){ PageBean pageBean = new PageBean() ; pageBean.setCurrentPage(currentPage); pageBean.setPageSize(pageSize); //查詢總條數 Integer count = userService.selectCount() ; //放到pageBean中 pageBean.setTotalCount(count); List<User> userList = userService.selectForPage3(pageBean) ; for (User user : userList) { System.out.println(user); } System.out.println("當前第"+pageBean.getCurrentPage()+"頁,共"+count+"條"); return Results.successWithData(userList, BaseEnums.SUCCESS.code(),BaseEnums.SUCCESS.desc()); }
2. UserService.java中:
//查詢總條數 public Integer selectCount(); /* * 分頁查詢3 對象 * */ public List<User> selectForPage3(PageBean pageBean);
3. UserServiceImpl.java中:
public Integer selectCount(){ return userMapper.selectCount() ; } public List<User> selectForPage3(PageBean pageBean){ return userMapper.selectForPage3(pageBean) ; }
4. UserMapper.Java中:
public Integer selectCount(); public List<User> selectForPage3(PageBean pageBean);
5. UserMapper.xml中:
<!-- 查詢總條數--> <select id="selectCount" resultType="java.lang.Integer"> select count(*) from sys_user </select> <!-- 查詢4--> <select id="selectForPage3" resultType="User"> select * from sys_user limit #{startIndex},#{pageSize} </select>
6. 前端實現為:通過參數數值控制分頁首頁和頁面數據多少
五、通過傳遞當前頁和頁面大小兩個參數進行分頁,同時還要傳遞一個keywords,用於模糊查詢匹配,在傳遞之前將三個參數裝載到map對象中進行傳遞,進而查詢所有條數據。
1. UserController.java中:
/* * 模糊查詢后分頁查詢 * */ @GetMapping("/selectByLike") public Result selectByLike(@RequestParam("keywords")String keywords , @RequestParam("currentPage")int currentPage , @RequestParam("pageSize") int pageSize){ PageBean pageBean = new PageBean() ; pageBean.setCurrentPage(currentPage); pageBean.setPageSize(pageSize); //查詢總條數 Integer count = userService.selectCount2(keywords) ; //放到pageBean中 pageBean.setTotalCount(count); Map<String , Object> map = new HashMap<>() ; map.put("startIndex" , (currentPage-1)*pageSize); map.put("pageSize" , pageSize) ; map.put("keywords" , keywords) ; List<User> userList = userService.selectForPage4(map) ; for (User user : userList) { System.out.println(user); } System.out.println("當前第"+pageBean.getCurrentPage()+"頁,共"+count+"條"); return Results.successWithData(userList, BaseEnums.SUCCESS.code(),BaseEnums.SUCCESS.desc()); }
2. UserService.java中:
//模糊查詢 public List<User> selectForPage4(Map<String, Object> map) ; public Integer selectCount2(String keywords) ;
3. UserServiceImpl.java中:
public List<User> selectForPage4(Map<String, Object> map){ return userMapper.selectForPage4(map) ; } public Integer selectCount2(String keywords){ return userMapper.selectCount2(keywords) ; }
4. UserMapper.Java中:
//模糊查詢符合條件條數 public Integer selectCount2(String keywords); //分頁加模糊查詢 public List<User> selectForPage4(Map<String, Object> map);
5. UserMapper.xml中:
<!-- 查詢5--> <select id="selectForPage4" resultType="User"> select * from sys_user where username like "%"#{keywords}"%" limit #{startIndex},#{pageSize} </select> <!-- 模糊查詢查詢總條數--> <select id="selectCount2" resultType="java.lang.Integer" parameterType="java.lang.String"> select count(*) from sys_user where username like "%"#{keywords}"%" </select>
6. 前端實現為:通過參數數值控制分頁首頁和頁面數據多少
這樣一來,四種分頁查詢方式就介紹完了,基礎的數據庫配置、spring boot配置等見上一篇博文,上一篇都有詳細的介紹。
至此,結束。