@Test
public void selectByIdMany(){
List<User> users = userMapepr.selectBatchIds(Arrays.asList(1, "1342314475818954754", "1342339385874255874"));
System.out.println(users);
}
在asList方法参数中,输入想要查询的id
@Test
public void selectByMap(){
HashMap<String,Object> map = new HashMap<>();
map.put("name","ccc");
map.put("age",66);
List<User> users = userMapepr.selectByMap(map);
}
注意: name和age为同一条数据的属性时,才能够查询出来对应的数据,一个或者多个name为ccc,age为66的数据,如果name和age不是同一条数据的属性,则查询到的数据数为0。
@Test
public void selectByMap(){
HashMap<String,Object> map = new HashMap<>();
map.put("name","ccc");
map.put("name","hhh");
List<User> users = userMapepr.selectByMap(map);
}
注意: 当同时查询多个name时,因为map集合的自身特性,key不可以重复,value可以重复,key重复时,后插入的value覆盖之前的value值,所以该方法只查询name为hhh的数据。
该方法是Mybatis-plus中自带的方法
创建一个config包,在config中创建一个PagePlugin类
@Bean
public PaginationInterceptor paginationInterceptor(){
return new PaginationInterceptor();
}
**注意:**在创建完类之后,在类的上边加上@Configuration注解,否则spring扫描不到分页插件,分页无法完成
直接new一个page对象,传入两个参数,当前页和每页记录数,调用selectPage方法实现分页查询
@Test
public void testPage(){
//1.创建一个page对象
//传入两个参数 当前页 每页记录数
Page<User> page = new Page<>(1,3);
//调用MP分页查询方法
//调用mp分页查询过程中,底层封装
//把分页所有数据封装到Page对象里面
userMapepr.selectPage(page,null);
//通过page对象获取分页数据
System.out.println(page.getCurrent());//当前页
System.out.println(page.getRecords());//每页的数据放在list集合中
System.out.println(page.getSize());//每页显示条数
System.out.println(page.getTotal());//总记录数
System.out.println(page.getPages());//总页数
System.out.println(page.hasNext());//下一页
System.out.println(page.hasPrevious());//上一页
}
使用QueryWrapper构造查询条件,创建querywrapper对象 调用方法实现各种条件查询
@Test
public void selectComplex(){
//创建queryWrapper对象
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
//通过querywrapper设置查询条件
//ge gt le lt
//查询age>=30的记录
//第一个参数是字段名称,第二个是查询的值大于等于30
queryWrapper.ge("age",30);
List<User> users = userMapepr.selectList(queryWrapper);
System.out.println(users);
}
此方法演示了查询年龄大于等于30的数据,其他条件同理
@Test
public void queryComplex(){
//创建queryWrapper对象
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
//通过querywrapper设置查询条件
//eq ne
//查询name=abc的记录
//第一个参数是字段名称,第二个是查询的name值
queryWrapper.eq("name","abc");
List<User> users = userMapepr.selectList(queryWrapper);
System.out.println(users);
}
此方法演示了查询name等于abc的数据,不等于同理
@Test
public void queryComplex(){
//创建queryWrapper对象
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
//通过querywrapper设置查询条件
//between
//查询年龄0-50的记录
//第一个参数是字段名称,第二个是查询的开始值,第三个是结束值
queryWrapper.between("age",0,50);
List<User> users = userMapepr.selectList(queryWrapper);
System.out.println(users);
此时查询到的数据是年龄0-50
@Test
public void queryComplex(){
//创建queryWrapper对象
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
//通过querywrapper设置查询条件
//like
//查询姓名中带c的记录
//第一个参数是字段名称,第二个是查询name中带c的值
queryWrapper.like("name","c");
List<User> users = userMapepr.selectList(queryWrapper);
System.out.println(users);
}
查询的是name中带c的数据
@Test
public void queryComplex(){
//创建queryWrapper对象
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
//通过querywrapper设置查询条件
//orderByDesc降序 orderByAsc升序
//查询根据年龄降序排序
queryWrapper.orderByDesc("age");
List<User> users = userMapepr.selectList(queryWrapper);
System.out.println(users);
}
根据年龄进行降序排序查询
@Test
public void queryComplex(){
//创建queryWrapper对象
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
//通过querywrapper设置查询条件
//last
//在SQL语句中追加一个条件
queryWrapper.last("limit 1");//只查询一条
List<User> users = userMapepr.selectList(queryWrapper);
System.out.println(users);
}
在SQL语句后面追加一个limit 1 表示只查询1条
@Test
public void queryComplex(){
//创建queryWrapper对象
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
//通过querywrapper设置查询条件
//指定要查询的列
//指定查询id列和name列
queryWrapper.select("id","name");
List<User> users = userMapepr.selectList(queryWrapper);
System.out.println(users);
}
指定查询id列和name列的数据