浅谈MyBatis-Plus(二)
接(一)中的CRUD操作
按照id查询
@Test
public void testSelectById(){
User user = userMapper.selectById(1);
System.out.println(user);
}
按照id删除
@Test
public void testDeleteById(){
userMapper.deleteById(1);
System.out.println("删除成功!!!");
}
按照id数组删除
@Test
public void testDeleteByIdArray(){
Integer[] ids = {2,3};
userMapper.deleteBatchIds(Arrays.asList(ids));
}
注意该方法的参数是一个集合.需要将数组强转为集合
按照id修改
@Test
public void testUpdateById(){
User user = new User();
user.setId(4L).setName("xiaoqiao");
userMapper.updateById(user);
System.out.println("修改成功!!!");
}
注意该方法的参数是一个实体类,并不是id.
条件构造器
通过sql查询数据时,通常会有各种条件,比如查询年龄大于18小于25的数据等等,在MP中就需要使用条件构造器完成.
需求:查询年龄大于18小于25的数据
@Test
public void test01(){
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.gt("age", 18)
.lt("age", 25);
List<User> list = userMapper.selectList(queryWrapper);
System.out.println(list);
}
条件构造器: QueryWrapper<具体pojo类>,说白了就是通过该API可以操作多条件查询.默认下条件通过and链接,如果想使用or怎么办?
@Test
public void test01(){
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.gt("age", 18)
.or()
.lt("age", 25);
List<User> list = userMapper.selectList(queryWrapper);
System.out.println(list);
}
构造器连接符:
条件构造器的连接符:
* 等于:eq
* 大于:gt
* 小于:lt
* 大于等于:ge
* 小于等于:le
* 不等于:ne
* 条件间关联用法 默认使用and链接,如果用or,手动添加or()
排序查询
@Test
public void test02(){
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.orderByDesc("id");
List<User> list = userMapper.selectList(queryWrapper);
System.out.println(list);
}
模糊查询
@Test
public void test03(){
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.like("name","q");
List<User> list = userMapper.selectList(queryWrapper);
System.out.println(list);
}
like---->%q%
likeLift----->q%
likeRight------->%q
查询id为1,2,3,4的数据
方法一
@Test
public void test04(){
Integer[] ids = {1,2,3,4};
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
List<Integer> asList = Arrays.asList(ids);
queryWrapper.in("id",asList);
List<User> list = userMapper.selectList(queryWrapper);
System.out.println(list);
}
方法二
@Test
public void test05(){
Integer[] ids = {1,2,3,4};
List<Integer> asList = Arrays.asList(ids);
List<User> list = userMapper.selectBatchIds(asList);
System.out.println(list);
}
根据对象中不为null的数据查询
@Test
public void test06(){
String name = "laoqiao";
String email = null;
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(StringUtils.hasLength(name),"name",name);
queryWrapper.eq(StringUtils.hasLength(email),"email",email);
List<User> list = userMapper.selectList(queryWrapper);
System.out.println(list);
}