注意:本教程使用的数据库脚本、数据模型和环境信息请参考 “MyBatis Plus环境准备” 章节,点击下载示例源码。
本章节将介绍 gt(大于)、ge(大于等于)、lt(小于等于)和 le(小于等于)条件的用法。它们的定义分别如下:
gt(R column, Object val) gt(boolean condition, R column, Object val)
实例:查询 age 大于 18 岁
QueryWrapper<UserBean> wrapper = new QueryWrapper<>(); wrapper.gt("age", 18); // 等价 SQL 语句:age > 18
ge(R column, Object val) ge(boolean condition, R column, Object val)
实例:查询 age 大于等于 18 岁
QueryWrapper<UserBean> wrapper = new QueryWrapper<>(); wrapper.ge("age", 18); // 等价 SQL 语句:age >= 18
lt(R column, Object val) lt(boolean condition, R column, Object val)
实例:查询 age 小于 18 岁
QueryWrapper<UserBean> wrapper = new QueryWrapper<>(); wrapper.lt("age", 18); // 等价 SQL 语句:age < 18
le(R column, Object val) le(boolean condition, R column, Object val)
实例:查询 age 小于等于 18 岁
QueryWrapper<UserBean> wrapper = new QueryWrapper<>(); wrapper.le("age", 18); // 等价的 SQL 语句:age <= 18
参数说明:
column:要用于条件筛选的数据库表列名称,如:name
val:用于指定数据表列的值,条件将根据该值进行筛选
condition:用于指定当前这个条件是否有效;如果为 true,则应用当前条件;如果为 false,则忽略当前条件。
package com.hxstrive.mybatis_plus.simple_mapper.condition; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.hxstrive.mybatis_plus.mapper.SimpleMapper; import com.hxstrive.mybatis_plus.model.UserBean; import org.junit.jupiter.api.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import java.util.List; @RunWith(SpringRunner.class) @SpringBootTest class Condition5Test { @Autowired private SimpleMapper simpleMapper; @Test void contextLoads() { QueryWrapper<UserBean> wrapper = new QueryWrapper<>(); wrapper.gt("user_id", 100); wrapper.lt("user_id", 105); List<UserBean> userBeanList = simpleMapper.selectList(wrapper); for(UserBean userBean : userBeanList) { System.out.println(userBean); } System.out.println("================== 分割线 ==================="); wrapper = new QueryWrapper<>(); wrapper.ge("user_id", 100); wrapper.le("user_id", 105); userBeanList = simpleMapper.selectList(wrapper); for(UserBean userBean : userBeanList) { System.out.println(userBean); } } }
运行上面代码,将执行如下 SQL 语句:
Preparing: SELECT user_id,name,sex,age,face,salary,borthday FROM user WHERE (user_id > ? AND user_id < ?) Parameters: 100(Integer), 105(Integer) Preparing: SELECT user_id,name,sex,age,face,salary,borthday FROM user WHERE (user_id >= ? AND user_id <= ?) Parameters: 100(Integer), 105(Integer)