QueryWrapper和LambdaQueryWrapper
1. QueryWrapper(普通版)
特点:写字符串字段名
QueryWrapper<Employee> wrapper = new QueryWrapper<>(); wrapper.like("name", "张三"); // 字段写字符串 "name" wrapper.eq("id", 123);缺点:
- 手写字符串,容易拼错(比如写成 "naem")
- 写错编译器不报错,运行才崩
- 后期改数据库字段名,代码全部手动改,麻烦
2. LambdaQueryWrapper(Lambda 版)
特点:用实体类方法引用,不用写字段
LambdaQueryWrapper<Employee> wrapper = new LambdaQueryWrapper<>(); wrapper.like(Employee::getName, "张三"); // 方法引用,不用写字段 wrapper.eq(Employee::getId, 123);补充:
两者底层逻辑、可用方法(like、eq、gt、orderBy)完全一样,唯一差别:指定字段的方式。
