Skip to content

这是MybatisPlus最为核心的功能了,之前在基础入门之增删改查提到过一些简单的逻辑不需要去写sql就可以完成,这个SQL就是使用条件构造器去构造的。

属性解释
eq等于 =
ne不等于 <>
gt大于 >
ge大于等于 >=
lt小于 <
le小于等于 <=
betweenBETWEEN 值1 AND 值2
notBetweenNOT BETWEEN 值1 AND 值2
inin("age", 1, 2, 3)
notInnotIn("age",{1,2,3})
groupBygroupBy("id", "name")
orderByAscorderByAsc("id", "name")
orderByDescorderByDesc("id", "name")
orderByorderBy(true, true, "id", "name")
havinghaving("sum(age) > {0}", 11)
andand(i -> i.eq("name", "李白").ne("status", "活着"))

使用案例

我把基础入门之增删改查中使用到条件构造器的地方复制了一部分,其中QueryWrapper是构建查询语句,UpdateWrapper是构建修改语句,二者的区别是UpdateWrapper多了set属性。

java
@Autowired
private UserMapper userMapper;

public void update(User user) {
    //构建条件
    QueryWrapper<User> wrapper = new QueryWrapper<>();
    //根据用户名更新,参数1对应数据库中的字段
    wrapper.eq("user_name","zhangsan");
    //参数1:实体对象
    userMapper.update(user, wrapper);
}

public void update2(User user) {
    //构建条件
    UpdateWrapper<User> wrapper = new UpdateWrapper<>();
    //更改"user_name"为"zhangsan"的age和password字段
    wrapper.set("age",21).set("password","88888").eq("user_name","zhangsan");
    //参数1:实体对象
    userMapper.update(null, wrapper);
}