前言

 好记性不如烂笔头,记录内容,方便日后复制。

一、时间区间查询

 简单记录两种时间查询的方式:

1.xml中实现

controller 文件

@ApiOperation(value="查询用户的通知列表",notes = "查询用户的通知列表")
@PostMapping("/queryUserNoticeList")
public Result<IPage<NcNoticeDeliverVo>> queryUserNoticeList(
@ApiParam(name = "startTime", value = "开始时间") @RequestParam(required = false) String startTime,
@ApiParam(name = "endTime", value = "结束时间") @RequestParam(required = false) String endTime,
@ApiParam(name = "page", value = "页码") @RequestParam(defaultValue = "0") Integer page,
@ApiParam(name = "size", value = "数量") @RequestParam(defaultValue = "10") Integer size) { // 开始时间
Date startDate = null;
Date endDate = null;
try {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if(StringUtils.isNotBlank(startTime)){
startDate = simpleDateFormat.parse(startTime);
}
if(StringUtils.isNotBlank(endTime)){
endDate = simpleDateFormat.parse(endTime);
}
} catch (ParseException e) {
throw new ServiceException("时间转换异常!");
} Page<NcNoticeDeliverVo> queryPage = new Page<>(page,size);
return new Result(CommonCode.SUCCESS, "查询成功!",
ncNoticeDeliverService.queryUserNoticeList(queryPage, startDate, endDate));
}

xml 文件

<if test='startDate != null'>
AND <![CDATA[ DATE_FORMAT(a.CREATED_TIME,'%Y-%m-%d') >= DATE_FORMAT(#{startDate},'%Y-%m-%d')]]>
</if>
<if test='endDate != null'>
AND <![CDATA[ DATE_FORMAT(a.CREATED_TIME,'%Y-%m-%d') <= DATE_FORMAT(#{endDate},'%Y-%m-%d')]]>
</if>

注意:

%Y-%m-%d %H:%i:%s   年月日 时分秒,可根据实际情况进行使用

<	&lt;
<= &lt;=
> &gt;
>= &gt;=
& &amp;
' &apos;
" &quot;

2. Mybatis Plus 方式

Controller 文件

@ApiOperation(value="列表(分页,没有筛选条件)",notes = "列表(分页,没有筛选条件)")
@PostMapping("/queryList")
public Result<IPage<DpRecord>> queryList(
@ApiParam(name = "startTime", value = "开始时间") @RequestParam(required = false) String startTime,
@ApiParam(name = "endTime", value = "结束时间") @RequestParam(required = false) String endTime,
@ApiParam(name = "page", value = "页码") @RequestParam(defaultValue = "0") Integer page,
@ApiParam(name = "size", value = "数量") @RequestParam(defaultValue = "10") Integer size) { // 时间校验
try {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if(StringUtils.isNotBlank(startTime)){
simpleDateFormat.parse(startTime);
}
if(StringUtils.isNotBlank(endTime)){
simpleDateFormat.parse(endTime);
}
} catch (ParseException e) {
throw new ServiceException("时间转换异常!");
} Page<DpRecord> queryPage = new Page<DpRecord>(page,size); return new Result(CommonCode.SUCCESS, "查询成功!",
dpRecordService.queryList(queryPage, startTime, endTime));
}

serviceImpl 文件

@Override
public IPage<DpRecord> queryList(Page<DpRecord> iPage, String startTime, String endTime){ // 查询条件拼装
LambdaQueryWrapper<DpRecord> lambdaQueryWrapper = Wrappers.<DpRecord>query().lambda();
if(StringUtils.isNotBlank(startTime)){
lambdaQueryWrapper.apply("date_format ("+DpRecord.START_TIME+",'%Y-%m-%d') >= date_format('" + startTime + "','%Y-%m-%d')");
}
if(StringUtils.isNotBlank(endTime)){
lambdaQueryWrapper.apply("date_format ("+DpRecord.END_TIME+",'%Y-%m-%d') <= date_format('" + endTime + "','%Y-%m-%d')");
}
lambdaQueryWrapper.orderByDesc(DpRecord::getStartTime);
return this.page(iPage, lambdaQueryWrapper);
}

model文件

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("dp_record")
@ApiModel(value="DpRecord对象", description="数据处理记录 ")
public class DpRecord implements Serializable { @TableField(exist = false)
public static final String START_TIME = "START_TIME"; @TableField(exist = false)
public static final String END_TIME = "END_TIME"; private static final long serialVersionUID = 1L; @ApiModelProperty(value = "ID")
@TableId(value = "ID", type = IdType.ASSIGN_ID)
private String id;
}

二、模糊查询

 简单记录两种模糊查询的方式:

1.xml中实现

Controller 文件

@ApiOperation(value="列表(分页,没有筛选条件)",notes = "列表(分页,没有筛选条件)")
@PostMapping("/queryList")
public Result<IPage<DpProcess>> queryList(
@ApiParam(name = "searchParam", value = "模糊搜索条件:支持名称、代码、影响集合等条件的查询") @RequestParam(required = false) String searchParam,
@ApiParam(value = "页码",name = "page") @RequestParam(defaultValue = "0") Integer page,
@ApiParam(value = "数量",name = "size") @RequestParam(defaultValue = "10") Integer size) { Page<DpProcess> iPage = new Page<>(page, size);
return new Result(CommonCode.SUCCESS, "查询成功!", dpProcessService.queryList(iPage, enabled, searchParam, category));
}

xml 文件

<if test = 'searchParam != null and searchParam != ""'>
and CONCAT_WS('|',a.PY_CODE, '|',a.WB_CODE, '|',a.THIRD_CODE, '|',a.ROLE_NAME ) LIKE CONCAT('%',#{searchParam},'%')
</if>

2. Mybatis Plus 方式

Controller 文件

@ApiOperation(value="列表(分页,没有筛选条件)",notes = "列表(分页,没有筛选条件)")
@PostMapping("/queryList")
public Result<IPage<DpProcess>> queryList(
@ApiParam(name = "searchParam", value = "模糊搜索条件:支持名称、代码、影响集合等条件的查询") @RequestParam(required = false) String searchParam,
@ApiParam(value = "页码",name = "page") @RequestParam(defaultValue = "0") Integer page,
@ApiParam(value = "数量",name = "size") @RequestParam(defaultValue = "10") Integer size) { Page<DpProcess> iPage = new Page<>(page, size);
return new Result(CommonCode.SUCCESS, "查询成功!", dpProcessService.queryList(iPage, enabled, searchParam, category));
}

serviceImpl 文件

@Override
public IPage<DpProcess> queryList(Page<DpProcess> iPage, String searchParam){ // 查询条件进行封装
LambdaQueryWrapper<DpProcess> lambdaQueryWrapper = new LambdaQueryWrapper<>(); if(StringUtils.isNotBlank(searchParam)){
lambdaQueryWrapper.and(i -> i.like(DpProcess::getName, searchParam)
.or().like(DpProcess:: getCode, searchParam)
.or().like(DpProcess::getOutCols, searchParam));
} return this.page(iPage, lambdaQueryWrapper);
}

Mybatis简单查询的更多相关文章

  1. MyBatis简单的增删改查以及简单的分页查询实现

    MyBatis简单的增删改查以及简单的分页查询实现 <? xml version="1.0" encoding="UTF-8"? > <!DO ...

  2. MyBatis关联查询 (association) 时遇到的某些问题/mybatis映射

    先说下问题产生的背景: 最近在做一个用到MyBatis的项目,其中有个业务涉及到关联查询,我是将两个查询分开来写的,即嵌套查询,个人感觉这样更方便重用: 关联的查询使用到了动态sql,在执行查询时就出 ...

  3. Mybatis高级查询之一对一查询的四种方法

    目录 1. 一对一查询 1.1 一对一嵌套结果查询 1.2 使用resultMap配置一对一映射 1.3 使用resultMap的association标签配置一对一映射 1.4 associatio ...

  4. MyBatis关联查询、多条件查询

    MyBatis关联查询.多条件查询 1.一对一查询 任务需求; 根据班级的信息查询出教师的相关信息 1.数据库表的设计 班级表: 教师表: 2.实体类的设计 班级表: public class Cla ...

  5. mybatis框架-查询用户表中的记录数

    之前已经搭建过mybatis框架了,现在我们要用mybatis框架真正的干点事情了. 这是这个简单web项目的整体架构. 我们使用mybatis框架查询用户表中的记录数: 这是用户类: package ...

  6. MyBatis的查询

    MyBatis的查询 在上一个MyBatis的核心API中介绍了SqlSessionFactoryBuilder.SqlSessionFactory以及SqlSession是什么,它们都有什么作用,本 ...

  7. 浅析MyBatis(二):手写一个自己的MyBatis简单框架

    在上一篇文章中,我们由一个快速案例剖析了 MyBatis 的整体架构与整体运行流程,在本篇文章中笔者会根据 MyBatis 的运行流程手写一个自定义 MyBatis 简单框架,在实践中加深对 MyBa ...

  8. MyBatis 高级查询环境准备(八)

    MyBatis 高级查询 之前在学习 Mapper XML 映射文件时,说到 resultMap 标记是 MyBatis 中最重要最强大也是最复杂的标记,而且还提到后面会详细介绍它的高级用法. 听到高 ...

  9. mybatis关联查询基础----高级映射

    本文链接地址:mybatis关联查询基础----高级映射(一对一,一对多,多对多) 前言: 今日在工作中遇到了一个一对多分页查询的问题,主表一条记录对应关联表四条记录,关联分页查询后每页只显示三条记录 ...

随机推荐

  1. Java后端编译

    概述 如果我们把字节码看作是程序语言的一种中间表示形式(Intermediate Representation,IR)的话, 那编译器无论在何时.在何种状态下把Class文件转换成与本地基础设施(硬件 ...

  2. 学习vue过程中遇到的问题

    1.vue-quill-editor动态禁用 项目中把vue-quill-editor单独封装成了一个组件,通过props传递readOnly参数来设置是否禁用editor.开发中发现可以实现禁用效果 ...

  3. 基于Java和Bytemd用120行代码实现一个桌面版Markdown编辑器

    前提 某一天点开掘金的写作界面的时候,发现了内置Markdown编辑器有一个Github的图标,点进去就是一个开源的Markdown编辑器项目bytemd(https://github.com/byt ...

  4. 【SpringBoot技术专题】「JWT技术专区」SpringSecurity整合JWT授权和认证实现

    JWT基本概念 JWT,即 JSON Web Tokens(RFC 7519),是一个广泛用于验证 REST APIs 的标准.虽说是一个新兴技术,但它却得以迅速流行. JWT的验证过程是: 前端(客 ...

  5. JavaScript学习03(函数)

    函数 函数定义 JavaScript 函数是通过 function 关键词定义的. 声明定义 function functionName(parameters) { 要执行的代码 } 被声明的函数不会 ...

  6. sqli-labs lesson 23

    less 23: 这里通过验证?id=1'# 发现还是报错 观察代码: 这里涉及一个函数mixed preg_replace(mixed $pattern,mixed $replacement,mix ...

  7. Pikachu-Unsafe Fileupload模块

    一.概述 文件上传功能在web应用系统很常见,比如很多网站注册的时候需要上传头像.上传附件等等.当用户点击上传按钮后,后台会对上传的文件进行判断 比如是否是指定的类型.后缀名.大小等等,然后将其按照设 ...

  8. flutter升级2.0

    前言 flutter2.0版本带来了很多变化,特别是加入了空安全,升级后的大片报错,让大家望而却步. 现在距2.0发布已经快半年了,大部分插件也支持了空安全,而我们的项目却因为版本低,用不上新东西,所 ...

  9. 解密优酷智能生产技术,看 AI 赋能内容数字化

    2021 年,随着社会节奏的加快,用户碎片化消费时间不断增加,当前短视频的消费用户规模已超 7.73 亿人,短视频的市场规模超过 2000 亿元.短视频行业发展迅速,但也存在低质内容泛滥,精品内容稀缺 ...

  10. 题解 park/chase

    传送门 这题考试的时候觉得时间复杂度假了,\(n \geqslant 1000\)的部分直接瞎写了个特殊性质上去,结果假的时间复杂度能有60pts-- 比较大的数组无论如何不要直接全部memset!如 ...