这一节我们继续学习Mybatis Plus的查询使用方法。
6、根据条件查询列表,这个我们在第一节就演示过了,看下源码定义:
/**
* 根据 entity 条件,查询全部记录
*
* @param queryWrapper 实体对象封装操作类(可以为 null)
*/
List<T> selectList(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
第一节内容的代码:
@Test
public void testSelect() {
System.out.println(("----- selectAll method test ------"));
List<User> userList = userMapper.selectList(null);
Assert.assertEquals(5, userList.size());
userList.forEach(System.out::println);
}
7、基于条件将查询结果以List<Map>返回
代码:
@Test
public void testSelectMaps() {
System.out.println(("----- selectMaps method test ------"));
QueryWrapper wrapper = new QueryWrapper();
wrapper.gt("Age", 21);
List<Map<String, Object>> list = userMapper.selectMaps(wrapper);
list.forEach(user -> user.forEach((k,v)->{
// 打印键,打印值
System.out.println(k + "----" +v);
}));
}
输出:
==> Preparing: SELECT id,name,age,email FROM user WHERE (Age > ?)
==> Parameters: 21(Integer)
<== Columns: ID, NAME, AGE, EMAIL
<== Row: 3, Tom, 28, test3@baomidou.com
<== Row: 5, Billie, 24, test5@baomidou.com
<== Total: 2
上面是SQL输出,下面是代码打印输出:
ID----3
EMAIL----test3@baomidou.com
NAME----Tom
AGE----28
ID----5
EMAIL----test5@baomidou.com
NAME----Billie
AGE----24
sql查询条件是年龄大于21的人,打印了两条数据,是key—-value的格式打印的。
8、基于条件查询,返回一个主键的list,也就是返回的是主键的集合
代码:
@Test
public void testSelectObjs() {
System.out.println(("----- selectObjs method test ------"));
QueryWrapper wrapper = new QueryWrapper();
wrapper.gt("Age", 21);
List users = userMapper.selectObjs(wrapper);
users.forEach(System.out::println);
}
输出:
==> Preparing: SELECT id,name,age,email FROM user WHERE (Age > ?)
==> Parameters: 21(Integer)
<== Columns: ID, NAME, AGE, EMAIL
<== Row: 3, Tom, 28, test3@baomidou.com
<== Row: 5, Billie, 24, test5@baomidou.com
<== Total: 2
System.out::println的输出:
3
5
9、基于条件的分页查询,在第二节已经讲过,这里贴出源码的方法定义
/**
* 根据 entity 条件,查询全部记录(并翻页)
*
* @param page 分页查询条件(可以为 RowBounds.DEFAULT)
* @param queryWrapper 实体对象封装操作类(可以为 null)
*/
<E extends IPage<T>> E selectPage(E page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
第二节内容的代码:
@Test
public void testSelectPage() {
System.out.println(("----- selectAll method test ------"));
Page<User> userPage = userMapper.selectPage(new Page<User>(1, 2), null);
List<User> records = userPage.getRecords();
records.forEach(System.out::println);
}
10、基于条件的分页查询,在第二节已经讲过,这里贴出源码的方法定义
/**
* 根据 Wrapper 条件,查询全部记录(并翻页)
*
* @param page 分页查询条件
* @param queryWrapper 实体对象封装操作类
*/
<E extends IPage<Map<String, Object>>> E selectMapsPage(E page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);