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]