MybatisPlus条件构造器

本文详细介绍了MyBatisPlus如何使用构造器创建查询条件,包括eq(相等)、ne(不等)、gt(大于)、lt(小于)、ge(大于等于)、le(小于等于)、between(区间查询)、notBetween(非区间查询)和allEq(全等匹配)等方法,展示了这些方法在实际操作中的应用,帮助开发者更高效地进行动态SQL操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.创建构造器语法

// 其中泛型填充要操作的Entity
QueryWrapper<User> queryWrapper = new QueryWrapper<>();

2.测试删除 ,ge大于

@Test
    public  void  test2(){
        // 创建QueryWrapper对象
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        // 直接.即可其中isNull = where name IS Not NULL,查询名字部位不为空的
        queryWrapper
                .isNotNull("name")
                // 如果继续.说明条件使用 AND 连接,ge为大于等于的意思sql为:and age >= 12
                .ge("age", 24);
        // 调用delete方法说明要根据条件进行数据删除
        int result = userMapper.delete(queryWrapper);
        System.out.println("delete return count = " + result);

    }

user表原先样子
在这里插入图片描述
执行代码后
在这里插入图片描述

DELETE FROM user WHERE (name IS NOT NULL AND age >= ?)

MybaitsPlus为我们封装了很多方法,动态拼接,底层用到的介绍动态Sql;为程序开发节约了大量的时间,我们再也不需要化更多的时间在动态Sql上了;

2.测试删除:lt小于
在这里插入图片描述

DELETE FROM user WHERE (name IS NOT NULL AND age < ?)

lt 是age < ,不同于 ge >=
总结:gt:>,lt:< ,ge:>=, le:<=

3.eq、ne
eq:相等
ne:不相等

@Test
    public void s(){
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("name", "Jack");
        final List<User> users = userMapper.selectList(queryWrapper);
        users.forEach(System.out::println);
    }
==>  Preparing: SELECT id,name,age,email,create_time,update_time FROM user WHERE (name = ?)
==> Parameters: Jack(String)

4.between、notBetween
根据边界查询,包含边界大小

 @Test
    public void s2(){
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.between("age", 3, 24);
        queryWrapper.notBetween("id", 1, 4);
        final List<User> users = userMapper.selectList(queryWrapper);
        users.forEach(System.out::println);
    }
Preparing: SELECT id,name,age,email,create_time,update_time FROM user WHERE (age BETWEEN ? AND ? AND id NOT BETWEEN ? AND ?)
==> Parameters: 3(Integer), 24(Integer), 1(Integer), 4(Integer)
<==    Columns: id, name, age, email, create_time, update_time
<==        Row: 1352673956626432, 玛丽亚, 3, 23213221@qq.com, 2022-04-29 15:01:48.0, 2022-04-29 15:01:50.0
<==        Row: 352100735947640832, 澳际赛亚人, 6, 23213221@qq.com, 2022-04-29 15:01:54.0, 2022-04-29 15:01:59.0
<==        Row: 352117547670179840, 小日本受死2, 18, 23213221@qq.com, 2022-04-29 15:55:58.0, 2022-04-29 15:55:58.0
<==      Total: 3

5.allEq

  @Test
    public void s3(){
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        Map<String, Object> map = new HashMap<>();
        map.put("id", 2);
        map.put("name", "Jack");
        map.put("age", 20);
        queryWrapper.allEq(map);
        final List<User> users = userMapper.selectList(queryWrapper);
        users.forEach(System.out::println);
    }
Preparing: SELECT id,name,age,email,create_time,update_time FROM user WHERE (name = ? AND id = ? AND age = ?)
==> Parameters: Jack(String), 2(Integer), 20(Integer)
<==    Columns: id, name, age, email, create_time, update_time
<==        Row: 2, Jack, 20, test2@baomidou.com, 2022-04-29 15:01:32.0, 2022-04-29 15:01:34.0
<==      Total: 1
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@11b377c5]
User [Hash = -1512049413, id=2, name=Jack, age=20, email=test2@baomidou.com, serialVersionUID=1]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值