一.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方法进行指定字段。