一、mybatisplus使用wrapper组装数据
@SpringBootTest
public class wrapperTest {
@Autowired
private UserMapper userMapper;
/**
* 组装条件查询
*/
@Test
public void selectUserTest() {
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.like("t_name", "n")
.between("age", 18, 45)
.isNotNull("email");
List<User> userList = userMapper.selectList(wrapper);
userList.forEach(System.out::println);
}
/**
* 组装排序查询
*/
@Test
public void selectUser() {
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.orderByDesc("age")
.orderByAsc("ids");
List<User> userList = userMapper.selectList(wrapper);
userList.forEach(System.out::println);
}
/**
* 组装删除功能
*/
@Test
public void deleteUser(){
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.isNull("email");
int delete = userMapper.delete(wrapper);
System.out.println(delete);
}
/**
* 组装修改功能
*/
@Test
public void updateUser() {
QueryWrapper<User> wrapper = new QueryWrapper<>();
//组装条件
wrapper.gt("age",20)
.like("t_name","a")
.or()
.isNull("email");
User user = new User();
user.setName("老李");
int update = userMapper.update(user, wrapper);
System.out.println(update);
}
@Test
public void updateUser01() {
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.like("t_name","a")
.and(i ->i.gt("age",20).or().isNull("email"));
User user = new User();
user.setName("小王");
int update = userMapper.update(user, wrapper);
System.out.println(update);
}
@Test
public void updateUser02() {
UpdateWrapper<User> userUpdateWrapper = new UpdateWrapper<>();
userUpdateWrapper.like("t_name","a")
.and(i ->i.gt("age",20).or().isNull("email"));
userUpdateWrapper.set("t_name","小霸王");
int update = userMapper.update(null, userUpdateWrapper);
System.out.println(update);
}
/**
* 组装查询
*/
@Test
public void selectMap() {
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.select("t_name", "age", "email");
List<Map<String, Object>> maps = userMapper.selectMaps(wrapper);
maps.forEach(System.out::println);
}
/**
* 组装子查询
*/
@Test
public void selectUserIn(){
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.inSql("ids","select ids from t_user where ids <= 10");
List<User> userList = userMapper.selectList(wrapper);
userList.forEach(System.out::println);
}
/**
* 模拟数据查询
*/
@Test
public void selectUser04(){
String t_name = "n";
Integer age = null;
Integer ages = 20;
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.like(StringUtils.isNotBlank(t_name),"t_name",t_name)
.ge(age != null,"age",age)
.le(ages != null,"age",ages);
List<User> userList = userMapper.selectList(wrapper);
userList.forEach(System.out::println);
}
/**
* 使用LambdaQueryWrapper组装
*/
@Test
public void selectUser05(){
String t_name = "n";
Integer age = null;
Integer ages = 20;
LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.like(StringUtils.isNotBlank(t_name),User::getName,t_name)
.ge(age != null,User::getAge,age)
.le(ages != null,User::getAge,ages);
List<User> userList = userMapper.selectList(lambdaQueryWrapper);
userList.forEach(System.out::println);
}
/**
*
*/
@Test
public void updateUser03(){
LambdaUpdateWrapper<User> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
lambdaUpdateWrapper.like(User::getName,"a")
.and(i ->i.gt(User::getAge,20).or().isNull(User::getEmail));
lambdaUpdateWrapper.set(User::getName,"老王").set(User::getEmail,"666@qq.com");
int update = userMapper.update(null, lambdaUpdateWrapper);
System.out.println(update);
}
}