文章目录
一、wapper介绍
Wrapper : 条件构造抽象类,最顶端父类
AbstractWrapper : 用于查询条件封装,生成 sql 的 where 条件
QueryWrapper : Entity 对象封装操作类,不是用lambda语法
UpdateWrapper : Update 条件封装,用于Entity对象更新操作
AbstractLambdaWrapper : Lambda 语法使用 Wrapper统一处理解析 lambda 获取 column。
LambdaQueryWrapper :看名称也能明白就是用于Lambda语法使用的查询Wrapper
LambdaUpdateWrapper : Lambda 更新封装Wrapper
@RunWith(SpringRunner.class)
@SpringBootTest
public class QueryWrapperTests {
@Autowired
private UserMapper userMapper;
}
二、AbstractWrapper
注意:以下条件构造器的方法入参中的 column 均表示数据库字段
1、ge、gt、le、lt、isNull、isNotNull
@Test
public void deleteTest(){
//创建条件构造器对象
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
//以下条件构造器的方法入参中的 column 均表示数据库字段
//ge、gt、le、lt、isNull、isNotNull
/**
* ge(greater than or equal):大于等于
* gt(greater than);大于
* le(less than or equal):小于等于
* lt(less than):小于
*/
//条件为email为空,name不为空,age大于等于12小于等于22
// WHERE
// deleted=0
// AND name IS NOT NULL
// AND age >= 12
// AND age <= 22
queryWrapper
.isNull("email")
.isNotNull("name")
.ge("age",12)
.le("age",22);
int row = userMapper.delete(queryWrapper);
System.out.println(row);
}
Execute SQL:UPDATE user SET deleted=1 WHERE deleted=0 AND email IS NULL AND name IS NOT NULL AND age >= 12 AND age <= 22
2、eq、ne
注意:seletOne返回的是一条实体记录,当出现多条时会报错
@Test
public void selectOneTest(){
//eq、ne即equal 、not equal
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper
.eq("id",1);
//selectOne正常返回一条记录,返回多条记录时会报错
User user = userMapper.selectOne(queryWrapper);
System.out.println(user);
}
Execute SQL:SELECT id,name,age,email,create_time,update_time,version,deleted FROM user WHERE deleted=0 AND id = 1
3、between、notBetween
包含大小边界
@Test
public void selectCountTest()