1)通过id进行批量查询
测试demo:
@Test
public void test04() {
List<User> userList = userMapper.selectBatchIds(Arrays.asList("1388048014324580354", "1392340666326999041"));
userList.forEach(System.out::println);
}
sql执行结果:
==> Preparing: SELECT id,name,age,email,create_time,update_time,version FROM user WHERE id IN ( ? , ? )
==> Parameters: 1388048014324580354(String), 1392340666326999041(String)
<== Columns: id, name, age, email, create_time, update_time, version
<== Row: 1388048014324580354, 赵老师, 18, 1961871256@qq.com, 2021-04-30 16:30:09, 2021-04-30 16:34:15, 1
<== Row: 1392340666326999041, 刘老师, 18, 1961871256@qq.com, 2021-05-12 12:47:37, 2021-05-12 12:47:37, 0
<== Total: 2
2)通过map进行简单条件查询
测试demo:
@Test
public void test05() {
Map<String, Object> map = new HashMap<>();
map.put("name", "赵老师");
map.put("age", "18");
List<User> user = userMapper.selectByMap(map);
System.out.println(user);
}
sql执行结果:
==> Preparing: SELECT id,name,age,email,create_time,update_time,version FROM user WHERE name = ? AND age = ?
==> Parameters: 赵老师(String), 18(String)
<== Columns: id, name, age, email, create_time, update_time, version
<== Row: 1388048014324580354, 赵老师, 18, 1961871256@qq.com, 2021-04-30 16:30:09, 2021-04-30 16:34:15, 1
<== Total: 1
3)分页查询
增加配置类:
/**
* 分页插件
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
测试demo:
@Test
public void Test06() {
//1 创建Page对象,向Page对象传递两个参数:当前页和每页记录数
Page<User> page = new Page<>(2, 1);
//2 调用mp的分页方法
//分页所有数据封装到page对象中
page = userMapper.selectPage(page, null);
//3 从page对象获取分页数据
long current = page.getCurrent(); //当前页
long pages = page.getPages(); //总页数
long size = page.getSize(); //每页显示记录数
List<User> records = page.getRecords(); //数据集合
long total = page.getTotal(); //总记录数
boolean hasPrevious = page.hasPrevious(); //上一页
boolean hasNext = page.hasNext(); //下一页
}
}
sql执行结果:
==> Preparing: SELECT id,name,age,email,create_time,update_time,version FROM user LIMIT ?,?
==> Parameters: 1(Long), 1(Long)
<== Columns: id, name, age, email, create_time, update_time, version
<== Row: 1392340666326999041, 刘老师, 18, 1961871256@qq.com, 2021-05-12 12:47:37, 2021-05-12 12:47:37, 0
<== Total: 1
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@359b650b]
2
2
1
[User(id=1392340666326999041, name=刘老师, age=18, email=1961871256@qq.com, createTime=Wed May 12 12:47:37 GMT+08:00 2021, updateTime=Wed May 12 12:47:37 GMT+08:00 2021, version=0)]
2
true
false
4)条件查询
ge gt le lt: >= > <= <
QueryWrapper<User> wrapper=new QueryWrapper<>();
wrapper.ge("age", 20);
List<User> list = userMapper.selectList(wrapper);
list.forEach(System.out::println);
SELECT id,name,age,email,create_time,update_time,version,deleted FROM user WHERE deleted=0 AND (age >= ?)
betwween not between
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.between("age", 19, 25);
List<User> list = userMapper.selectList(wrapper);
SELECT id,name,age,email,create_time,update_time,version,deleted FROM user WHERE deleted=0 AND (age BETWEEN ? AND ?)
like
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.like("name","卜");
List<User> list = userMapper.selectList(wrapper);
==> Preparing: SELECT id,name,age,email,create_time,update_time,version,deleted FROM user WHERE deleted=0 AND (name LIKE ?)
==> Parameters: %卜%(String)
eq ne: = !=
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("name","卜老师");
List<User> list = userMapper.selectList(wrapper);
SELECT id,name,age,email,create_time,update_time,version,deleted FROM user WHERE deleted=0 AND (name = ?)
查询具体的列
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.select("name","age");
List<User> list = userMapper.selectList(wrapper);
SELECT name,age FROM user WHERE deleted=0
orderByDesc orderByAsc : 排序
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.orderByDesc("age");
List<User> list = userMapper.selectList(wrapper);
SELECT id,name,age,email,create_time,update_time,version,deleted FROM user WHERE deleted=0 ORDER BY age DESC