56juqingba.com – What's Your Question? Core Finance Categories Java中eq、ne、ge、gt、le、lt的含义详细解释

Java中eq、ne、ge、gt、le、lt的含义详细解释

好,这几个在 Java 里非常常见,尤其是在 MyBatis / MyBatis-Plus / JPA / 条件构造器 / 查询 DSL 里。我们一次讲清楚,记完就不容易混 👍


一、这 6 个缩写从哪来?

它们本质都来自 英文比较运算符的缩写

缩写英文全称中文含义
eqequal等于
nenot equal不等于
gtgreater than大于
gegreater than or equal大于等于
ltless than小于
leless than or equal小于等于

👉 在 Java 原生语法 里你看不到 eq / gt
👉 它们主要出现在 ORM / 查询封装层


二、和 Java 原生运算符的对应关系

ORM 写法Java 运算符SQL
eq===
ne!=<>!=
gt>>
ge>=>=
lt<<
le<=<=

三、MyBatis-Plus 中的典型用法(最常见)

QueryWrapper<User> qw = new QueryWrapper<>();

qw.eq("status", 1);      // status = 1
qw.ne("deleted", 1);    // deleted != 1
qw.gt("age", 18);       // age > 18
qw.ge("score", 60);     // score >= 60
qw.lt("age", 65);       // age < 65
qw.le("salary", 10000); // salary <= 10000

生成的 SQL 类似:

WHERE status = 1
AND deleted != 1
AND age > 18
AND score >= 60
AND age < 65
AND salary <= 10000

四、LambdaQueryWrapper(更安全,推荐)

LambdaQueryWrapper<User> qw = new LambdaQueryWrapper<>();

qw.eq(User::getStatus, 1)
  .gt(User::getAge, 18)
  .le(User::getSalary, 10000);

✅ 优点:

  • 字段名不写字符串
  • 改字段名不会出 bug
  • IDE 自动补全

五、JPA / Specification 中的等价含义

虽然 JPA 不直接叫 gt,但含义完全一致:

cb.greaterThan(root.get("age"), 18);   // gt
cb.lessThan(root.get("age"), 60);      // lt
cb.equal(root.get("status"), 1);       // eq
cb.notEqual(root.get("status"), 0);    // ne

六、和 == / equals 的重要区别(新手必踩坑)

❌ 错误理解

qw.eq("name", "Tom"); // 不是 Java 的 ==

✅ 实际含义

WHERE name = 'Tom'

👉 eq 是 SQL 层比较,不是 Java 对象比较


七、记忆口诀(面试 / 实战都好用)

等不等看 e,
大不大看 g,
小不小看 l,
有等号加 e

  • eq:等于
  • ne:不等于
  • gt / ge:大于 / 大于等于
  • lt / le:小于 / 小于等于

八、常见使用场景总结

✔ 条件查询
✔ 动态 SQL
✔ 分页筛选
✔ 后台管理系统
✔ 统计 / 区间查询


如果你愿意,我也可以帮你:

  • 🔥 画一张对照速查表(可打印)
  • 🔥 结合你现在的项目写真实业务示例
  • 🔥 对比 MyBatis vs MyBatis-Plus 用法

你现在是在 写查询条件 还是 准备面试 Java 后端

Leave a Reply

您的邮箱地址不会被公开。 必填项已用 * 标注

Related Post