mybatis-plus中eqIfPresent和eq的区别
时间: 2024-06-02 22:13:15 浏览: 424
MyBatis-Plus入门+MyBatis-Plus文档手册 中文pdf高清版.rar
5星 · 资源好评率100%
mybatis-plus中eqIfPresent和eq的区别在于eqIfPresent只在参数不为空时进行条件拼接,而eq无论参数是否为空都会进行条件拼接。举个例子,假设我们有一个实体类User,其中有两个属性username和age,我们想根据这两个属性进行查询,但是可能有些查询只需要根据username进行查询,有些查询只需要根据age进行查询,有些查询需要同时根据username和age进行查询。使用eqIfPresent可以方便地根据参数情况进行条件拼接,示例代码如下:
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eqIfPresent("username", username)
.eqIfPresent("age", age);
如果我们使用eq进行条件拼接,示例代码如下:
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("username", username)
.eq("age", age);
无论username和age是否为空,eq都会进行条件拼接,这可能会导致查询结果不符合预期。因此,eqIfPresent可以更加灵活地根据参数情况进行条件拼接。
阅读全文