QueryGenerator.initQueryWrapper()和new LambdaQueryWrapper()有什么区别
时间: 2023-10-23 15:39:12 浏览: 285
import-query-generator:用于海量资源导入的高效查询生成器,可区分新记录和要更新的记录
`QueryGenerator.initQueryWrapper()` 和 `new LambdaQueryWrapper()` 都是用于生成 MyBatis-Plus 的查询条件的工具类,但它们的实现方式略有不同。
`QueryGenerator.initQueryWrapper()` 是一个静态方法,属于 MyBatis-Plus 的代码库中的一个工具类。它使用反射技术,根据传入的实体类对象,动态生成一个 `QueryWrapper` 对象,并返回。这个方法的优点是使用方便,无需手动 new 对象,只需要传入实体对象即可。但是,由于使用了反射技术,可能会对性能产生一定影响。
`new LambdaQueryWrapper()` 则是手动创建一个 `LambdaQueryWrapper` 对象。这种方式需要手动创建对象,但是它的性能相对更好,因为没有使用反射技术。同时,它还支持使用 Lambda 表达式来构建查询条件,使得代码更加简洁易读。
综上所述,`QueryGenerator.initQueryWrapper()` 适用于快速生成查询条件的场景,而 `new LambdaQueryWrapper()` 则适用于更加灵活、需要更高性能的场景。
阅读全文