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技术站