CRUD查
- 一、普通查询
- 1.1、通过id查询单个用户
- 1.2、通过id查询多个用户
- 1.3、条件查询 通过map封装
- 二、分页查询
- 2.1、配置分页插件
- 2.2、运行方法
- 三、通过wrapper条件构造器查询
- 3.1、查询name不为空,email不为空,age大于18的用户
- 3.2、查询name=Jone的用户
- 3.3、查询age在10-20之间的用户
- 3.4、模糊查询 name不包含s,likeRight = t% 匹配第一个t开头
- 3.5、查询出id 小于 5 的数据
- 3.6、查询所有,并根据id进行排序
- 3.7、查询姓名为测试、年龄为18,的第一条数据。
- 四、关于service跟mapper方法,参考官网
- ————————
- 创作不易,笔记不易,如觉不错,请三连,谢谢~~
一、普通查询
1.1、通过id查询单个用户
@Test//通过id查询单个用户
public void testSelectById(){
User user = userMapper.selectById(1L);
System.out.println(user);
}
1.2、通过id查询多个用户
@Test//通过id查询多个用户
public void testSelectBatchIds(){
List<User> users = userMapper.selectBatchIds(Arrays.asList(1L, 2L, 3L));
users.forEach(System.out::println);
}
1.3、条件查询 通过map封装
@Test//通过条件查询之一 map
public void testMap(){
HashMap<String, Object> map = new HashMap<>();
//自定义要查询的
map.put("name","Jack");
map.put("age",18);
List<User> users = userMapper.selectByMap(map);
users.forEach(System.out::println);
}
二、分页查询
2.1、配置分页插件
2.2、运行方法
查询第2页,页面大小为5
看一下数据库的数据,是否匹配
三、通过wrapper条件构造器查询
3.1、查询name不为空,email不为空,age大于18的用户
@Test
public void testWrapper1() {
//参数是一个wrapper ,条件构造器
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper
.isNotNull("name")
.isNotNull("email")
.ge("age",18);
List<User> userList = userMapper.selectList(wrapper);
userList.forEach(System.out::println);
}
3.2、查询name=Jone的用户
@Test
public void testWrapper2() {
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("name","Jack");
//查询一个数据selectOne,若查询出多个会报错
//Expected one result (or null) to be returned by selectOne(), but found: *
//若出现多个结果使用list或map
User user = userMapper.selectOne(wrapper); //查询一个数据,若出现多个结果使用list或map
System.out.println(user);
}
3.3、查询age在10-20之间的用户
@Test
public void testWrapper3() {
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.between("age", 15, 25);//区间
Integer count = userMapper.selectCount(wrapper);//输出查询的数量selectCount
System.out.println(count);
}
3.4、模糊查询 name不包含s,likeRight = t% 匹配第一个t开头
@Test
public void testWrapper4() {
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper
.notLike("name","s")
.likeRight("email","t");
List<Map<String, Object>> maps = userMapper.selectMaps(wrapper);
maps.forEach(System.out::println);
}
3.5、查询出id 小于 5 的数据
@Test
public void testWrapper5() {
//模糊查询
// SELECT id,name,age,email,version,deleted,create_time,update_time
//FROM user
//WHERE deleted=0 AND id IN
//(select id from user where id<5)
QueryWrapper<User> wrapper = new QueryWrapper<>();
//id 在子查询中查出来
wrapper.inSql("id","select id from user where id<5");
List<Object> objects = userMapper.selectObjs(wrapper);
objects.forEach(System.out::println);
}
3.6、查询所有,并根据id进行排序
@Test
public void testWrapper6() {
QueryWrapper<User> wrapper = new QueryWrapper<>();
//通过id进行降序排序
wrapper.orderByDesc("id");
List<User> userList = userMapper.selectList(wrapper);
userList.forEach(System.out::println);
}
3.7、查询姓名为测试、年龄为18,的第一条数据。
/**
* .last表示拼接到sql的最后
* 如果用service就是.list,如果用mapper就是.selectList
* 返回值功能都是一样的,只是方法名不同
*/
/**
* 查询姓名为测试、年龄为18,的第一条数据。
*/
@Test
public void testWrapper7(){
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("name","测试");
wrapper.eq("age","18");
wrapper.last("limit 1");
//QueryWrapper<User> last = wrapper.last("limit 1");
//List<User> users = userService.list(wrapper); //第一种方式是通过service去查
List<User> users = userMapper.selectList(wrapper); //第二种方式是通过Mapper去查
users.forEach(System.out::println);
}
四、关于service跟mapper方法,参考官网
https://baomidou.com/pages/49cc81/#service-crud-%E6%8E%A5%E5%8F%A3