MyBatis-Plus 默认情况下会在生成的 SQL 语句中添加 WHERE 1=1 条件,这会导致一些不必要的性能消耗。可以使用 <where> 标签来自动去掉多余的 AND 或 OR,示例代码如下:

public List<User> selectUserList(String name, Integer age) {
    QueryWrapper<User> wrapper = new QueryWrapper<>();
    wrapper.eq(StringUtils.isNotBlank(name), 'name', name);
    wrapper.eq(age != null, 'age', age);
    return userMapper.selectList(wrapper);
}

使用 <where> 标签后,生成的 SQL 语句不再包含 WHERE 1=1,示例代码如下:

SELECT id,name,age,email,create_time,update_time FROM user WHERE name = ? AND age = ?

原文地址: https://www.cveoy.top/t/topic/oaNT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录