lambdaQuery() 是 MyBatis-Plus 框架中的一个常用方法,用于创建基于 Lambda 表达式的查询构造器。它可以方便地通过 Lambda 表达式来编写类型安全的 SQL 查询,避免了手写 SQL 可能导致的列名错误。
基本用法
创建 Lambda 查询
使用 lambdaQuery() 方法时,可以基于实体类生成一个查询条件构造器,编写查询条件。
// 通过 MyBatis-Plus 的 Service 层或 Mapper 层调用
List<User> userList = userService.lambdaQuery()
.eq(User::getName, "John")
.ge(User::getAge, 18)
.list();
常用的查询方法:
eq:等于
ne:不等于
ge:大于等于
le:小于等于
like:模糊查询
orderByAsc:升序排列
orderByDesc:降序排列
示例:
List<User> userList = userService.lambdaQuery()
.like(User::getEmail, "gmail")
.ge(User::getAge, 25)
.orderByAsc(User::getName)
.list();
该示例查询所有邮件地址包含 gmail 且年龄大于等于 25 岁的用户,并按照名字升序排序。
lambdaQuery 的优势
类型安全:由于使用了 Lambda 表达式,字段名称是通过实体类的方法引用,避免了手动输入字段名时的拼写错误。
链式调用:可以通过链式调用构建查询条件,简洁直观。
简化查询逻辑:避免了手写 SQL,使用更自然的面向对象风格。
其他用法
除了 lambdaQuery(),MyBatis-Plus 还提供了很多类似的方法,比如 lambdaUpdate()、lambdaChainQuery() 用于更新操作或链式查询。