一.Wapper介绍
1.查询书名包含a,年龄到20-30,邮箱不为null
模糊查询 like,区间查询 between ,判断查询 isNotNull
// 构造器
QueryWrapper<Book> wrapper=new QueryWrapper<>();
// 查询书名包含a,年龄到20-30,邮箱不为null
wrapper.like("bookname","高")
.between("age",20,30)
.isNotNull("email");
List<Book> books = bookMapper.selectList(wrapper);
books.forEach(System.out::println);
2.排序条件
orderByDesc:降序 orderByAsc:升序
QueryWrapper<Book> wrapper=new QueryWrapper<>();
//按照年龄降序排序,相同的话,再按照id升序
wrapper.orderByDesc("age")
.orderByAsc("id");
List<Book> books = bookMapper.selectList(wrapper);
books.forEach(System.out::println);
3.组装删除 也是用querywrapper
// 删除邮箱地址为空
QueryWrapper<Book> wrapper=new QueryWrapper<>();
wrapper.isNull("bookcounts");
int delete = bookMapper.delete(wrapper);
System.out.println(delete);
4.修改功能 年龄大于20并且用户名包含a,或邮箱为null的信息修改
//年龄大于20并且用户名包含a,或邮箱为null的信息修改
QueryWrapper<Book> wrapper=new QueryWrapper<>();
wrapper.gt("age",20)
.like("username","a")
.or()
.isNull("email");
Book book=new Book();
int update = bookMapper.update(book,wrapper);
5.条件优先级 用户名包含a 并且(年龄大于20或者邮箱不为null)的用户信息修改
QueryWrapper<Book> wrapper=new QueryWrapper<>();
//lambda表达式优先执行
wrapper.like("name","a")
.and(i->i.gt("age",20)
.or()
.isNull("emsil"));
Book book=new Book();
int update = bookMapper.update(book,wrapper);
6.查询字段
QueryWrapper<Book> wrapper=new QueryWrapper<>();
//查询书名,detail信息
wrapper.select("bookname","detail");
List<Map<String, Object>> maps = bookMapper.selectMaps(wrapper);
maps.forEach(System.out::println);
7.子查询
//id小于等于4
//SELECT bookid,bookname,bookcounts,detail,is_deleted FROM book WHERE is_deleted=0 AND (bookid IN (select bookid from book where bookid<=4))
QueryWrapper<Book> wrapper=new QueryWrapper<>();
wrapper.inSql("bookid","select bookid from book where bookid<=4");
List<Book> books = bookMapper.selectList(wrapper);
books.forEach(System.out::println);
8.更新 好处是不用再new实体类了
//名字包含高 并且(id大于4或者detail为null)
UpdateWrapper<Book> wrapper=new UpdateWrapper<>();
wrapper.like("bookname","高")
.and(i->i.gt("bookid",4).or().isNull("detail"));
wrapper.set("bookcounts",40);
int update = bookMapper.update(null,wrapper);
System.out.println(update);