您的位置:

Mybatisplus条件查询详解

一、Mybatisplus条件查询关键词

Mybatisplus是基于Mybatis的增强工具,在Mybatis的基础上只是进行了增强,因此其关键词和Mybatis的关键词大体相同,这些关键词包括Select、From、Where、Group By、Having、Order By等常见关键词。Mybatisplus还增加了一些特有的查询关键词,如:eq、ne、lt、le、gt、ge等,后面会讲到。

二、Mybatisplus条件查询日期

在实际项目中,我们常常需要按照日期进行查询,例如查询当天的数据、查询某个日期范围内的数据等。Mybatisplus提供了两种方式来支持日期查询:

1.通过使用实现JDBC规范的Date、Time、Timestamp类型来进行日期查询。

2.通过使用Java8中的LocalDateTime类型来进行日期查询。

// 使用JDBC规范的Date类型查询当天的数据
List userList = userMapper.selectList(new QueryWrapper
   ()
    .lambda()
    .eq(User::getCreateTime, new Date()));

// 使用Java8中的LocalDateTime类型查询某个日期范围内的数据
LocalDateTime startTime = LocalDateTime.now().minusDays(7);
LocalDateTime endTime = LocalDateTime.now();
List
     userList = userMapper.selectList(new QueryWrapper
     ()
    .lambda()
    .between(User::getCreateTime, startTime, endTime));

     
    
   
  

三、Mybatisplus条件查询叠加

叠加查询用于查询多个条件,例如查询年龄大于18岁且性别为男性的用户数据。 Mybatisplus提供了lambda方法进行叠加查询,叠加查询的条件可以通过and、or进行组合:

// 查询年龄大于18岁且性别为男性的用户数据
List userList = userMapper.selectList(new QueryWrapper
   ()
    .lambda()
    .gt(User::getAge, 18)
    .and(user -> user.eq(User::getGender, "male")));

   
  

四、Mybatisplus条件查询 一条数据

在实际项目中,我们通常只需要查询一条数据,例如查询某个用户的详细信息。Mybatisplus提供了单表查询的方式来查询一条数据:

// 查询id为1的用户的详细信息
User user = userMapper.selectOne(new QueryWrapper()
    .lambda()
    .eq(User::getId, 1));

  

五、Mybatisplus条件查询分页

分页查询在实际项目中非常常见,例如在管理后台列表显示时,需要支持分页查询。Mybatisplus提供了分页查询的方式通过Page对象进行实现:

// 第1页,每页显示10条数据
Page page = new Page<>(1, 10);
// 查询所有的用户数据并进行分页
IPage
    userPage = userMapper.selectPage(page, new QueryWrapper
    ());
// 获取分页查询结果
List
      userList = userPage.getRecords();

     
    
   
  

六、Mybatisplus条件查询中的eq的作用

在Mybatisplus条件查询中,一些特殊的查询关键词被定义为函数,例如在查询中使用eq可以将条件转换成等于的形式,如下:

// 将条件转换为等于的形式
new QueryWrapper()
    .eq("age", 18)
    .eq("gender", "male");

// 可以使用一下方式进行简化
new QueryWrapper
   ()
    .eq("age", 18, true);

   
  

七、Mybatisplus条件查询一条

在Mybatisplus条件查询中,我们可以通过selectOne方法查询一条数据的方式来获取对应的一条数据的详细信息:

// 查询id为1的用户的详细信息
User user = userMapper.selectOne(new QueryWrapper()
    .lambda()
    .eq(User::getId, 1));

  

八、Mybatisplus条件查询不等于

在Mybatisplus条件查询中,我们可以使用ne函数来代替"<>"进行不等于的查询:

// 查询age不等于18的用户数据
new QueryWrapper()
    .ne("age", 18);

  

九、Mybatisplus条件查询条件

在Mybatisplus条件查询中,我们可以通过and、or等关键词将多个查询条件进行组合:

// 查询年龄大于18且性别为男性或女性的用户数据
new QueryWrapper()
    .lambda()
    .gt(User::getAge, 18)
    .and(user -> user.eq(User::getGender, "male").or().eq(User::getGender, "female"));

  
以上就是Mybatisplus条件查询的详细介绍,具体用法基本与Mybatis相同,但是Mybatisplus使得我们更加方便快捷地进行实际项目的开发。