Mybatis-Plus时间范围查询方式详解

Mybatis-Plus时间范围查询方式详解

Mybatis-Plus是Mybatis的增强版,提供了多样化的查询方式,其中涉及到时间范围查询的内容,本篇文章就来详细讲解一下Mybatis-Plus中时间范围查询的使用方法。

1. 时间范围查询方式

Mybatis-Plus提供了4种时间范围查询方式,包括:

  • 普通方式:通过where条件语句查询
  • Lambda方式:通过Lambda表达式查询
  • QueryWrapper方式:通过QueryWrapper对象查询
  • EntityWrapper方式:通过EntityWrapper对象查询

接下来我们将详细介绍每种方式。

1.1 普通方式

使用普通方式需要在WHERE条件中手动添加比较符、日期格式等,示例如下:

SELECT * FROM table WHERE create_time > '2021-01-01 00:00:00' AND create_time < '2021-02-01 00:00:00'

Mybatis-Plus对应的代码如下:

String beginTime = "2021-01-01 00:00:00";
String endTime = "2021-02-01 00:00:00";
QueryWrapper<Entity> queryWrapper = new QueryWrapper<>();
queryWrapper.between("create_time", beginTime, endTime);
List<Entity> entityList = entityMapper.selectList(queryWrapper);

1.2 Lambda方式

使用Lambda方式可以通过Lambda表达式比较方便地进行时间范围查询,示例如下:

LocalDateTime beginTimeL = LocalDateTime.parse("2021-01-01 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
LocalDateTime endTimeL = LocalDateTime.parse("2021-02-01 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
LambdaQueryWrapper<Entity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.between(Entity::getCreateTime, beginTimeL, endTimeL);
List<Entity> entityList = entityMapper.selectList(lambdaQueryWrapper);

1.3 QueryWrapper方式

使用QueryWrapper方式可以通过QueryWrapper对象比较方便地进行时间范围查询,示例如下:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime beginTimeL = LocalDateTime.parse("2021-01-01 00:00:00", formatter);
LocalDateTime endTimeL = LocalDateTime.parse("2021-02-01 00:00:00", formatter);
QueryWrapper<Entity> queryWrapper = new QueryWrapper<>();
queryWrapper.between("create_time", beginTimeL, endTimeL);
List<Entity> entityList = entityMapper.selectList(queryWrapper);

1.4 EntityWrapper方式

使用EntityWrapper方式可以通过EntityWrapper对象比较方便地进行时间范围查询,示例如下:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime beginTimeL = LocalDateTime.parse("2021-01-01 00:00:00", formatter);
LocalDateTime endTimeL = LocalDateTime.parse("2021-02-01 00:00:00", formatter);
EntityWrapper<Entity> entityWrapper = new EntityWrapper<>();
entityWrapper.between("create_time", beginTimeL, endTimeL);
List<Entity> entityList = entityMapper.selectList(entityWrapper);

2. 示例

这里提供两个示例,一个是使用Lambda方式进行时间范围查询的示例,另一个是使用EntityWrapper方式进行时间范围查询的示例。

2.1 示例1

使用Lambda方式实现查询2021年1月1日到2月1日之间的数据:

LocalDateTime beginTimeL = LocalDateTime.parse("2021-01-01 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
LocalDateTime endTimeL = LocalDateTime.parse("2021-02-01 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
LambdaQueryWrapper<Entity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.between(Entity::getCreateTime, beginTimeL, endTimeL);
List<Entity> entityList = entityMapper.selectList(lambdaQueryWrapper);

2.2 示例2

使用EntityWrapper方式实现查询2021年1月1日到2月1日之间的数据:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime beginTimeL = LocalDateTime.parse("2021-01-01 00:00:00", formatter);
LocalDateTime endTimeL = LocalDateTime.parse("2021-02-01 00:00:00", formatter);
EntityWrapper<Entity> entityWrapper = new EntityWrapper<>();
entityWrapper.between("create_time", beginTimeL, endTimeL);
List<Entity> entityList = entityMapper.selectList(entityWrapper);

以上就是Mybatis-Plus时间范围查询方式的详细讲解,希望能够对大家有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Mybatis-Plus时间范围查询方式详解 - Python技术站

(1)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • Java自动化工具Ant的基础使用教程

    Java自动化工具Ant的基础使用教程 简介 Ant(Another Neat Tool)是一个基于Java开发的构建工具,它是基于脚本的、可扩展的构建系统。Ant通过XML文件来进行构建,而无需使用特定的编程语言来编写构建逻辑。Ant可以自动编译Java代码,运行Junit测试,生成Java文档等。 基础使用 安装 下载Ant安装程序,官方下载地址为:ht…

    Java 2023年5月26日
    00
  • 索引和PSI存根 (Indexing and PSI Stubs)

    索引 通过索引可以快速查找元素,例如:在代码库中,查找包含某个单词或某个方法的文件。插件开发者可以使用IDE已有的索引来构建和使用自己的索引。 有以下2种索引: 文件索引 :基于文件内容构建的索引。通过该索引可以直接搜索到符合指定条件的文件 Stud索引 :基于序列化Stub trees 构建。 Stub tree 是PSI tree 的子集,只包含PSI …

    Java 2023年5月9日
    00
  • 关于C#继承的简单应用代码分析

    下面就是“关于C#继承的简单应用代码分析”的攻略: 什么是继承? 在面向对象的编程中,继承是一个重要的概念。继承是指一个类可以从另一个类中继承其成员,包括字段和方法。从父类继承的成员可以被子类直接使用,也可以被子类重写。 如何使用继承? 在C#中,使用冒号(:)来指示一个类继承自另一个类。例如: class Animal { public void Eat(…

    Java 2023年5月19日
    00
  • Mybatis三种批量插入数据的方式

    Sure! 首先,我们先了解一下 Mybatis 中三种批量插入数据的方式: 1.基于 statement 的方式2.基于 batch 的方式3.基于 foreach 标签的方式 下面我将详细讲解这三种方式的过程和示例: 基于 statement 的方式 创建一个包含多个 insert 语句的 sql 文件,例如 insert_test.sql 文件如下: …

    Java 2023年5月20日
    00
  • gson对象序列化的示例

    下面我将为你详细讲解“gson对象序列化的示例”的完整攻略,包含以下内容: 什么是gson对象序列化 Gson库的导入 Gson对象序列化的基本使用方法 Gson对象序列化的示例 Gson数组序列化的示例 1. 什么是gson对象序列化 Gson是Google发布的Java开源库,用于将Java对象转成对应的JSON(JavaScript Object No…

    Java 2023年5月26日
    00
  • SpringBoot使用JSP作为视图模板的方法

    下面是SpringBoot使用JSP作为视图模板的完整攻略: 1. 新建SpringBoot项目 首先,我们需要新建一个SpringBoot项目。可以通过SpringBoot官网提供的快速构建工具Spring Initializr来完成项目初始化。 2. 配置build.gradle文件 在项目的build.gradle文件中需要添加以下依赖项和插件: de…

    Java 2023年6月15日
    00
  • Java中的IllegalStateException是什么?

    Java中的IllegalStateException 在Java编程中,当我们的应用程序处于不适合执行给定操作的状态时,会抛出IllegalStateException。 通俗一点讲,即在方法调用之前或之后进行检查,如果当前对象状态无法支持这种方法调用,则抛出IllegalStateException异常。 何时会抛出IllegalStateExcepti…

    Java 2023年4月27日
    00
  • 浅谈request.getinputstream只能读取一次的问题

    当使用request.getInputStream()方法获取请求数据流时,数据流只能被读取一次,如果多次读取,将无法获取数据。这是一个常见的问题,对于此问题的解决,我们可以使用如下两种方法: 方法一:使用Filter过滤器 通过过滤器来代替直接获取输入流,将获取到的输入流存放在自定义的HttpServletRequestWrapper中并使用缓存将数据流缓…

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部