在MyBatis-Plus框架中,LambdaQueryWrapper
和 QueryWrapper
是用于構建查詢條件的兩個主要類。它們都是查詢條件構造器,用于在查詢中生成 WHERE 子句的條件。
QueryWrapper
QueryWrapper
是 MyBatis-Plus 3.x 中引入的條件構造器。它的主要特點是使用字符串作為字段名,并支持鏈式調用。在使用過程中,需要手動輸入字段名的字符串,因此可能存在拼寫錯誤和字段名硬編碼的問題。
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", "John").gt("age", 25).orderByDesc("create_time");List<User> userList = userMapper.selectList(queryWrapper);
LambdaQueryWrapper
LambdaQueryWrapper
則是在 MyBatis-Plus 3.x 中引入的一種新型的條件構造器。它利用了 Java 8 的 Lambda 表達式,可以通過實體類的屬性引用而不是字符串來進行字段名的指定,從而減少硬編碼和拼寫錯誤的風險。
LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(User::getName, "John").gt(User::getAge, 25).orderByDesc(