spring boot整合JPA实现多条件查询并分页
生活随笔
收集整理的這篇文章主要介紹了
spring boot整合JPA实现多条件查询并分页
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.在DAO中的實現(xiàn)代碼:
| public Page<User> findAdminUserPage(PageRequest pr, String name) {String sql = "SELECT * FROM rf_user WHERE deleted='Normal' AND user_type='Admin' ";List<Object> params = new ArrayList<>();if (StringUtils.isNotBlank(name)) {sql += " AND user_name LIKE '%" + name + "%'";}sql += " ORDER BY create_time DESC";return fetchJdbcPage(pr, sql, new AutoRowMapper<>(User.class), params.toArray(new Object[]{})); } |
2.在Controller中的實現(xiàn)代碼:
| @PostMapping("/api/user/list") public Result roleList(String userName, Integer pageNo, Integer size, HttpServletRequest request){try {Map<String,Object> map = new HashMap<>();User user = userService.getDao().findById(Integer.valueOf(tokenService.valid(request.getHeader("token"))));if(user==null){return Result.fail(902,"用戶登錄失效,請重新登錄");}if(pageNo==null||size==null||pageNo==0||size==0){return Result.fail(903,"pageNo和size不能為空或者等于0");}Page<User> pager = userService.getDao().findAdminUserPage(PageRequest.of(pageNo, size), userName);map.put("rows", pager.getTotalElements());//查詢到的總記錄數(shù)map.put("pages", pager.getTotalPages());//查詢到的總頁數(shù)map.put("page", pageNo);List<Map<String, Object>> datas = new ArrayList<>();pager.forEach(user1 -> {Map<String, Object> item = new HashMap<>();item.put("id",user1.getId());item.put("name",user1.getName());item.put("loginKey",user1.getLoginKey());item.put("modifyTime",user1.getModifyTime());item.put("userState",user1.getUserState());item.put("loginPwd",user1.getLoginPwd());item.put("lastLoginIp",user1.getLastLoginIp());item.put("lastLoginTime",user1.getLastLoginTime());datas.add(item);});map.put("datas",datas);return Result.ok(map);}catch (Exception e){return Result.fail(901,e.getMessage());} } |
?
總結(jié)
以上是生活随笔為你收集整理的spring boot整合JPA实现多条件查询并分页的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java实现接收数组参数
- 下一篇: spring boot报错Invalid