条件构造器

一.allEq方法

1.基本应用【第一种模式】

(1)语法

//1.设置条件集合,必须是map集合
Map<String,Object> params = new HashMap<>();
params.put("name","张三");
params.put("age",21);
params.put("password",null);
//2.1 创建条件构造器对象
QueryWrapper<User> wrapper = new QueryWrapper<>();
//2.2.1 allEq方法是参数必须都相等
wrapper.allEq(params);

(2)范例

图片

2.判断键值对是否为null

(1)语法

/**
 * 条件构造器测试
 */
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = cn.SpringBootApplicationDemo01.class)
public class UserMapperTest6 {
    @Autowired
    private UserMapper userMapper;
    @Test
    public void test1(){
        //1.设置条件集合,必须是map集合
        Map<String,Object> params = new HashMap<>();
        params.put("name","张三");
        params.put("age",21);
        params.put("password",null);
        //2.1 创建条件构造器对象
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        //2.2.1 allEq方法是参数必须都相等
//        wrapper.allEq(params);
        //2.2.2 allEq方法是参数必须都相等,参数二是判断字段值是否为空
        wrapper.allEq(params,false);
        //2.2.3 参数一为一个过滤器,设置是否符合要求参与条件判断
        //参数二是判断条件集合的构造器对象
        //如果判断k不是age或者id,则不参与判断条件。如果是,则参与判断条件
//        wrapper.allEq((k,v)->(k.equals("age") || k.equals("id")),params);
        //3.执行sql语句
        List<User> users = userMapper.selectList(wrapper);
        for (User user:users){
            System.out.println(user);
        }
    }
}

(2)范例

图片

3.将判断条件设置过滤

(1)语法

/**
 * 条件构造器测试
 */
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = cn.SpringBootApplicationDemo01.class)
public class UserMapperTest6 {
    @Autowired
    private UserMapper userMapper;
    @Test
    public void test1(){
        //1.设置条件集合,必须是map集合
        Map<String,Object> params = new HashMap<>();
        params.put("name","张三");
        params.put("age",21);
        params.put("password",null);
        //2.1 创建条件构造器对象
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        //2.2.1 allEq方法是参数必须都相等
//        wrapper.allEq(params);
        //2.2.2 allEq方法是参数必须都相等,参数二是判断字段值是否为空
//        wrapper.allEq(params,false);
        //2.2.3 参数一为一个过滤器,设置是否符合要求参与条件判断
        //参数二是判断条件集合的构造器对象
        //如果判断k不是age或者id,则不参与判断条件。如果是,则参与判断条件
        wrapper.allEq((k,v)->(k.equals("age") || k.equals("id")),params);
        //3.执行sql语句
        List<User> users = userMapper.selectList(wrapper);
        for (User user:users){
            System.out.println(user);
        }
    }
}

(2)范例

图片

二.基本条件查询的方法

1.方法

eq

等于 =

ne

不等于 <>

gt

大于 >

ge

大于等于 >=

lt

小于 <

le

小于等于 <=

between

BETWEEN 值1 AND 值2

notBetween

NOT BETWEEN 值1 AND 值2

in

字段 IN (value.get(0), value.get(1), …)

notIn

字段 NOT IN (v0, v1, …)

2.范例

图片

三.模糊查询

1.方法

like

LIKE ‘%值%’

例: like(“name”, “王”) —> name like ‘%王%’

notLike

NOT LIKE ‘%值%’

例: notLike(“name”, “王”) —> name not like ‘%王%’

likeLeft

LIKE ‘%值’

例: likeLeft(“name”, “王”) —> name like ‘%王’

likeRight

LIKE ‘值%’

例: likeRight(“name”, “王”) —> name like ‘王%’

2.范例

图片

四.排序查询

1.方法

orderBy

排序:ORDER BY 字段, …

例: orderBy(true, true, “id”, “name”) —> order by id ASC,name ASC

orderByAsc

排序:ORDER BY 字段, … ASC

例: orderByAsc(“id”, “name”) —> order by id ASC,name ASC

orderByDesc

排序:ORDER BY 字段, … DESC

例: orderByDesc(“id”, “name”) —> order by id DESC,name DESC

2.范例

图片

五.逻辑查询【or或and】

1.方法

or

拼接 OR

主动调用 or 表示紧接着下一个方法不是用 and 连接!(不调用 or 则默认为使用 and 连接)

AND

嵌套

例: and(i -> i.eq(“name”, “李白”).ne(“status”, “活着”)) —> and (name = ‘李白’ and status

<> ‘活着’)

2.范例

图片

六.指定字段查询【select方法】

1.方法

select()

默认查询所有的字段,如果有需要也可以通过select方法进行指定字段。

2.范例

图片

七.源码

mybatisplus.rar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值