Java?IPage分頁(yè)操作 附加自定義sql
引入依賴(lài)
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.2</version>
</dependency>
User實(shí)體類(lèi)
@ApiModel(description = "用戶實(shí)體")
public class User {
/**
* serialVersionUID
*/
@ApiModelProperty(value = "主鍵")
private Integer id;
@ApiModelProperty(value = "用戶名")
private String username;
@ApiModelProperty(value = "真實(shí)昵稱(chēng)")
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 = "部門(mén)")
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("模糊查詢—分頁(yè)")
public ApiResponse<User> getLikeUser(@RequestBody Map<String, Object> queryMap) {
try {
return ApiResponse.ofSuccess(userService.getLikeUser(queryMap));
} catch (Exception e) {
log.error("模糊查詢—分頁(yè)失敗", e);
return ApiResponse.ofError("模糊查詢—分頁(yè)失敗");
}
}
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ù)重寫(xiě)Sql
- 思路:正常使用
Page<TcmcAlarm> page = new Page<>(current, size);分頁(yè)插件 - -返回
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();
// 分頁(yè)的使用
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 中寫(xiě)好 Sql 當(dāng)作參數(shù)傳入xml
// 復(fù)雜拼接 這種寫(xiě)法最簡(jiǎn)單,直接Joiner.on 拼接 “,” “#” “、”_" “-” 之類(lèi)的
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分頁(yè) 加自定義sql的文章就介紹到這了,更多相關(guān)Java IPage分頁(yè)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java 詳細(xì)講解分治算法如何實(shí)現(xiàn)歸并排序
分治算法的基本思想是將一個(gè)規(guī)模為N的問(wèn)題分解為K個(gè)規(guī)模較小的子問(wèn)題,這些子問(wèn)題相互獨(dú)立且與原問(wèn)題性質(zhì)相同。求出子問(wèn)題的解,就可得到原問(wèn)題的解,本篇文章我們就用分治算法來(lái)實(shí)現(xiàn)歸并排序2022-04-04
java編寫(xiě)的簡(jiǎn)單移動(dòng)方塊小游戲代碼
這篇文章主要介紹了java編寫(xiě)的簡(jiǎn)單移動(dòng)方塊小游戲代碼,涉及Java簡(jiǎn)單圖形繪制與事件響應(yīng)的相關(guān)技巧,需要的朋友可以參考下2015-12-12
Java開(kāi)發(fā)中POJO和JSON互轉(zhuǎn)時(shí)如何忽略隱藏字段的問(wèn)題
這篇文章主要介紹了Java開(kāi)發(fā)中POJO和JSON互轉(zhuǎn)時(shí)如何忽略隱藏字段的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02
SpringBoot配置GlobalExceptionHandler全局異常處理器案例
這篇文章主要介紹了SpringBoot配置GlobalExceptionHandler全局異常處理器案例,通過(guò)簡(jiǎn)要的文章說(shuō)明如何去進(jìn)行配置以及使用,需要的朋友可以參考下2021-06-06
使用SpringMVC在redirect重定向的時(shí)候攜帶參數(shù)的問(wèn)題
這篇文章主要介紹了使用SpringMVC在redirect重定向的時(shí)候攜帶參數(shù)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
在Action中以Struts2的方式輸出JSON數(shù)據(jù)的實(shí)例
下面小編就為大家?guī)?lái)一篇在Action中以Struts2的方式輸出JSON數(shù)據(jù)的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-11-11

