当前位置: 首页 > news >正文

南海专业网站建设公司永久免费的培训学校管理软件

南海专业网站建设公司,永久免费的培训学校管理软件,网络营销做得比较好的企业,logo素材网站有哪些LambdaQueryWrapper 是 MyBatis Plus 提供的一个强大的查询条件构建工具,它允许你使用 Lambda 表达式来构建查询条件,从而使代码更加简洁和易读。下面详细介绍 LambdaQueryWrapper 的使用方法及其底层原理。 什么是 LambdaQueryWrapper? La…

LambdaQueryWrapper 是 MyBatis Plus 提供的一个强大的查询条件构建工具,它允许你使用 Lambda 表达式来构建查询条件,从而使代码更加简洁和易读。下面详细介绍 LambdaQueryWrapper 的使用方法及其底层原理。

什么是 LambdaQueryWrapper

LambdaQueryWrapper 是 MyBatis Plus 提供的一个类,用于构建复杂的查询条件。它基于 Lambda 表达式,可以方便地进行条件拼接,支持多种查询条件的组合,如等于、不等于、大于、小于、模糊查询等。

主要特点

  1. 类型安全:使用 Lambda 表达式,编译器可以检查表达式的正确性,避免了字符串拼接带来的错误。
  2. 代码简洁:使用 Lambda 表达式,代码更加简洁和易读。
  3. 灵活多变:支持多种查询条件的组合,满足复杂查询需求。

常用方法

以下是一些常用的 LambdaQueryWrapper 方法:

  • eq:等于
  • ne:不等于
  • gt:大于
  • ge:大于等于
  • lt:小于
  • le:小于等于
  • like:模糊查询(包含)
  • notLike:模糊查询(不包含)
  • in:在某个集合内
  • notIn:不在某个集合内
  • isNull:为空
  • isNotNull:不为空
  • orderByAsc:升序排序
  • orderByDesc:降序排序

示例代码

假设我们有一个 Employee 实体类和对应的 EmployeeMapper 接口:

package com.itheima.reggie.entity;import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;import java.time.LocalDateTime;@Data
@TableName("employee")
public class Employee {@TableId(type = IdType.AUTO)private Long id;private String name;private String username;private String password;private String phone;private String email;private Integer status;private LocalDateTime createTime;private LocalDateTime updateTime;private Long createUser;private Long updateUser;
}
package com.itheima.reggie.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.itheima.reggie.entity.Employee;public interface EmployeeMapper extends BaseMapper<Employee> {
}

使用 LambdaQueryWrapper 的示例

1. 等于条件查询
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.itheima.reggie.entity.Employee;
import com.itheima.reggie.mapper.EmployeeMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class EmployeeService {@Autowiredprivate EmployeeMapper employeeMapper;public Employee getEmployeeByName(String name) {LambdaQueryWrapper<Employee> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.eq(Employee::getName, name);return employeeMapper.selectOne(queryWrapper);}
}
2. 多条件查询
public List<Employee> getEmployeesByConditions(String name, String phone) {LambdaQueryWrapper<Employee> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.eq(Employee::getName, name).like(Employee::getPhone, phone);return employeeMapper.selectList(queryWrapper);
}
3. 排序查询
public List<Employee> getEmployeesOrderByCreateTime() {LambdaQueryWrapper<Employee> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.orderByDesc(Employee::getCreateTime);return employeeMapper.selectList(queryWrapper);
}
4. 复合条件查询
public List<Employee> getEmployeesByComplexConditions(String name, String phone, Integer status) {LambdaQueryWrapper<Employee> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.eq(Employee::getName, name).like(Employee::getPhone, phone).eq(Employee::getStatus, status).orderByDesc(Employee::getCreateTime);return employeeMapper.selectList(queryWrapper);
}

底层原理

  1. Lambda 表达式

    • LambdaQueryWrapper 使用 Lambda 表达式来指定查询条件,编译器会在编译时检查表达式的正确性,避免了运行时错误。
    • 例如,Employee::getName 是一个方法引用,表示 Employee 类的 getName 方法。
  2. 条件拼接

    • LambdaQueryWrapper 内部维护了一个条件列表,每次调用条件方法(如 eqlike 等)时,会将条件添加到列表中。
    • 最终,这些条件会被拼接成一个完整的 SQL 查询语句。
  3. SQL 生成

    • 当调用 selectOneselectList 等方法时,LambdaQueryWrapper 会将条件列表转换为 SQL 语句,并执行查询。
    • 例如,queryWrapper.eq(Employee::getName, name).like(Employee::getPhone, phone) 会生成类似以下的 SQL 语句:
      SELECT * FROM employee WHERE name = ? AND phone LIKE ?
      

总结

LambdaQueryWrapper 是 MyBatis Plus 提供的一个强大的查询条件构建工具,它使用 Lambda 表达式来构建查询条件,使代码更加简洁和易读。通过 LambdaQueryWrapper可以轻松地构建复杂的查询条件,满足各种查询需求。

http://www.dt0577.cn/news/12203.html

相关文章:

  • 上海内贸网站建设手游推广平台哪个好
  • 湖北建设执业注册中心网站推广普通话手抄报内容50字
  • 网站中flash怎么做的全网营销老婆第一人
  • 局网站内容建设考核如何建立自己的网站?
  • 衡水微网站制作怎么做什么是seo搜索
  • 建网站建网站的公司网络游戏推广怎么做
  • 上海装饰公司10排名优化关键词排名工具
  • 怎么做seo网站推广青岛seo外包公司
  • 我要自学网官网免费武汉seo搜索优化
  • 宝鸡市城乡住房建设局网站深圳优化网站
  • 动态网站建设答案搜索引擎推广渠道
  • 网站建设 外包无锡百度竞价推广
  • 西安网站建设制作 熊掌号代运营公司
  • 专门做书籍设计的网站网络推广有前途吗
  • 凡客网站的域名怎么做影视后期培训机构全国排名
  • 江西省建设厅网站首页安徽百度seo公司
  • 广州在线图文网络科技中心网站建设手机端怎么刷排名
  • 政府单位网站建设方案书深圳网站建设
  • 淘宝网站建设方案搜索优化推广公司
  • 可以做试卷并批改的网站自己做网站网页归档
  • 建设网站公司网站b站引流推广网站
  • wordpress 导航页面长沙网站seo技术厂家
  • 专门做狗猫配套网站有什么意思seo网站推广经理招聘
  • 做网站主流技术全网品牌推广公司
  • 山东网站建设好不好淘宝的前100个关键词排名
  • 做APP必须要有网站么成人职业技能培训有哪些项目
  • 深圳外贸网站公司可以推广赚钱的软件
  • 外国设计网站推荐seo技术外包
  • 源代码做的网站好用么长沙做优化的公司
  • 做网站上怎么推广呢百度识图在线使用