这篇文章主要介绍了Java IPage分页加自定义sql,主要包括引入依赖,impl常规操作,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
引入依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.2</version>
</dependency>
User实体类
@ApiModel(description = "用户实体")
public class User {
/**
* serialVersionUID
*/
@ApiModelProperty(value = "主键")
private Integer id;
@ApiModelProperty(value = "用户名")
private String username;
@ApiModelProperty(value = "真实昵称")
private String realname;
@ApiModelProperty(value = "性别")
private String sex;
@ApiModelProperty(value = "工号")
private String jobNum;
@ApiModelProperty(value = "状态 0 启用 1 禁用")
private Integer isDel;
@ApiModelProperty(value = "部门")
private Integer departmentId;
private String departmentName;
@ApiModelProperty(value = "密码")
private String password;// 用户密码
@ApiModelProperty(value = "手机")
private String mobile;// 手机
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常规操作
@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自定义参数重写Sql
- 思路:正常使用
Page<TcmcAlarm> page = new Page<>(current, size);
分页插件 - -返回
IPage<User> iPage = baseMapper.selectUser(page,username);
传参时 传入自定义的参数和 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 当作参数传入xml
// 复杂拼接 这种写法最简单,直接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>
到此这篇关于Java IPage分页 加自定义sql的文章就介绍到这了,更多相关Java IPage分页内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!
沃梦达教程
本文标题为:Java IPage分页操作 附加自定义sql
基础教程推荐
猜你喜欢
- springboot自定义starter方法及注解实例 2023-03-31
- ConditionalOnProperty配置swagger不生效问题及解决 2023-01-02
- Java实现查找文件和替换文件内容 2023-04-06
- Java并发编程进阶之线程控制篇 2023-03-07
- java实现多人聊天系统 2023-05-19
- Java文件管理操作的知识点整理 2023-05-19
- java基础知识之FileInputStream流的使用 2023-08-11
- Java实现线程插队的示例代码 2022-09-03
- JDK数组阻塞队列源码深入分析总结 2023-04-18
- Java数据结构之对象比较详解 2023-03-07