Java?IPage分頁操作 附加自定義sql
引入依賴
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.1.2</version> </dependency>
User實(shí)體類
@ApiModel(description = "用戶實(shí)體") public class User { /** * serialVersionUID */ @ApiModelProperty(value = "主鍵") private Integer id; @ApiModelProperty(value = "用戶名") private String username; @ApiModelProperty(value = "真實(shí)昵稱") private String realname; @ApiModelProperty(value = "性別") private String sex; @ApiModelProperty(value = "工號(hào)") private String jobNum; @ApiModelProperty(value = "狀態(tài) 0 啟用 1 禁用") private Integer isDel; @ApiModelProperty(value = "部門") private Integer departmentId; private String departmentName; @ApiModelProperty(value = "密碼") private String password;// 用戶密碼 @ApiModelProperty(value = "手機(jī)") private String mobile;// 手機(jī) private Integer createUser; private Integer editUser; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date gmtCreate; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date gmtUpdate; }
controller
@PostMapping("/likeUser") @ApiOperation("模糊查詢—分頁") public ApiResponse<User> getLikeUser(@RequestBody Map<String, Object> queryMap) { try { return ApiResponse.ofSuccess(userService.getLikeUser(queryMap)); } catch (Exception e) { log.error("模糊查詢—分頁失敗", e); return ApiResponse.ofError("模糊查詢—分頁失敗"); } }
service
IPage<User> getLikeUser(Map<String, Object> queryMap);
impl
impl常規(guī)操作
@Override public IPage<User> getLikeUser(Map<String, Object> params) { long size = Long.parseLong(StringUtils.defaultIfBlank(String.valueOf(params.get("limit")), "10")); long current = Long.parseLong(StringUtils.defaultIfBlank(String.valueOf(params.get("page")), "1")); QueryWrapper<User> q = new QueryWrapper<>(); Object username= params.get("username"); Object realname= params.get("realname"); Object sex= params.get("sex"); Object jobNum= params.get("jobNum"); Object mobile= params.get("mobile"); // 排序 Object sort = params.get("sort"); if (null != username && username.toString().trim().length() > 0) { q.lambda().like(User::getUsername, username); } if (null != realname) { q.lambda().like(User::getRealname, realname); } if (null != jobNum) { q.lambda().eq(User::getJobNum, jobNum); } if (null != startTime && null != endTime) { // GE 就是 GREATER THAN OR EQUAL 大于等于 // LE 就是 LESS THAN OR EQUAL 小于等于 q.lambda().ge(User::getCreateTime, startTime); q.lambda().le(User::getCreateTime, endTime); } if (sort.equals("ASC")) { // 升 q.lambda().orderByAsc(User::getCreateTime); } else if (sort.equals("DESC")) { q.lambda().orderByDesc(User::getCreateTime); } IPage<USer> page = this.page( new Page<>(current, size), q); return page; }
impl自定義參數(shù)重寫Sql
- 思路:正常使用
Page<TcmcAlarm> page = new Page<>(current, size);
分頁插件 - -返回
IPage<User> iPage = baseMapper.selectUser(page,username);
傳參時(shí) 傳入自定義的參數(shù)和 page - sql 正常接入即可
@Override public IPage<TcmcAlarm> selectUSer(Map<String, Object> params) { long size = Long.parseLong(StringUtils.defaultIfBlank(String.valueOf(params.get("limit")), "10")); long current = Long.parseLong(StringUtils.defaultIfBlank(String.valueOf(params.get("page")), "1")); String id= params.get("devId").toString(); String username= params.get("username").toString(); // 分頁的使用 Page<User> page = new Page<>(current, size); // 自定義sql IPage<User> iPage = baseMapper.selectUser(page, username); return iPage; } // mapper IPage<TcmcAlarm> selectUser(Page page, @Param("username") String username ; // sql <select id="selectUser" resultType="com.xxx.entity.User"> select * from user where username LIKE CONCAT('%', #{username}, '%') </select>
直接在impl 中寫好 Sql 當(dāng)作參數(shù)傳入xml
// 復(fù)雜拼接 這種寫法最簡單,直接Joiner.on 拼接 “,” “#” “、”_" “-” 之類的 String UNION = "UNION ALL "; // TB_SQL sql 片段 String join = Joiner.on(UNION).join(TB_SQL); Page<User> page = new Page<>(current, size); IPage<User> iPage = tcmcAlarmMapper.selectUser(page, join); // mapper IPage<User> selectUser(Page page, @Param("data") String data); // xml <select id="selectUser" resultType="com.xxx.entity.User"> ${data} </select>
到此這篇關(guān)于Java IPage分頁 加自定義sql的文章就介紹到這了,更多相關(guān)Java IPage分頁內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java 詳細(xì)講解分治算法如何實(shí)現(xiàn)歸并排序
分治算法的基本思想是將一個(gè)規(guī)模為N的問題分解為K個(gè)規(guī)模較小的子問題,這些子問題相互獨(dú)立且與原問題性質(zhì)相同。求出子問題的解,就可得到原問題的解,本篇文章我們就用分治算法來實(shí)現(xiàn)歸并排序2022-04-04Java開發(fā)中POJO和JSON互轉(zhuǎn)時(shí)如何忽略隱藏字段的問題
這篇文章主要介紹了Java開發(fā)中POJO和JSON互轉(zhuǎn)時(shí)如何忽略隱藏字段的問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02SpringBoot配置GlobalExceptionHandler全局異常處理器案例
這篇文章主要介紹了SpringBoot配置GlobalExceptionHandler全局異常處理器案例,通過簡要的文章說明如何去進(jìn)行配置以及使用,需要的朋友可以參考下2021-06-06使用SpringMVC在redirect重定向的時(shí)候攜帶參數(shù)的問題
這篇文章主要介紹了使用SpringMVC在redirect重定向的時(shí)候攜帶參數(shù)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03在Action中以Struts2的方式輸出JSON數(shù)據(jù)的實(shí)例
下面小編就為大家?guī)硪黄贏ction中以Struts2的方式輸出JSON數(shù)據(jù)的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11