1.快速开始
2.代码生成器
3.CRUD接口——Service CRUD接口
4.CRUD接口——Mapper CRUD接口
5.条件构造器
6.分页插件
7.Sequence主键
8.自定义ID生成器
9.逻辑删除
10.乐观锁插件
11.自动填充
我们在前面的增删改查中仅仅只使用mybatis-plus提供的最简单的方法来操作数据库,要么就直接删,要么就直接查。
学习了条件构造器之后,我们就可以实现sql语句中的条件查询,模糊查询等等功能
1.使用wrapper要注意
2.AbstactWrapper介绍
3.常用方法
数据库数据如下:
3.1 allEq
allEq(Map<R, V> params)
allEq(Map<R, V> params, boolean null2IsNull)
allEq(boolean condition, Map<R, V> params, boolean null2IsNull)
测试代码:
@RequestMapping("/test")
public void test() {
System.out.println("___allEq___");
QueryWrapper<User> wrapper = new QueryWrapper<>();
Map<String, String> map = new HashMap<>();
map.put("email", "2284612137@qq.com");
List<User> list = userService.list(wrapper.allEq(map));
list.forEach(System.out::println);
}
输出结果:
3.2 eq
测试代码:
@RequestMapping("/test")
public void test() {
System.out.println("___eq___");
QueryWrapper<User> wrapper = new QueryWrapper<>();
List<User> list = userService.list(wrapper.eq("name", "hk3"));
list.forEach(System.out::println);
}
输出结果:
3.3 ne
测试代码:
@RequestMapping("/test")
public void test() {
System.out.println("___ne___");
QueryWrapper<User> wrapper = new QueryWrapper<>();
List<User> list = userService.list(wrapper.ne("name", "hk3"));
list.forEach(System.out::println);
}
输出结果:
3.4 gt
测试代码:
@RequestMapping("/test")
public void test() {
System.out.println("___gt___");
QueryWrapper<User> wrapper = new QueryWrapper<>();
List<User> list = userService.list(wrapper.gt("age", 27));
list.forEach(System.out::println);
}
输出结果:
3.5 ge
测试代码:
@RequestMapping("/test")
public void test() {
System.out.println("___ge___");
QueryWrapper<User> wrapper = new QueryWrapper<>();
List<User> list = userService.list(wrapper.ge("age", 27));
list.forEach(System.out::println);
}
输出结果:
3.6 lt
测试代码:
@RequestMapping("/test")
public void test() {
System.out.println("___lt___");
QueryWrapper<User> wrapper = new QueryWrapper<>();
List<User> list = userService.list(wrapper.lt("age", 27));
list.forEach(System.out::println);
}
输出结果:
3.7 le
测试代码:
@RequestMapping("/test")
public void test() {
System.out.println("___le___");
QueryWrapper<User> wrapper = new QueryWrapper<>();
List<User> list = userService.list(wrapper.le("age", 27));
list.forEach(System.out::println);
}
输出结果:
3.8 between
测试代码:
@RequestMapping("/test")
public void test() {
System.out.println("___between___");
QueryWrapper<User> wrapper = new QueryWrapper<>();
List<User> list = userService.list(wrapper.between("age", 20, 27));
list.forEach(System.out::println);
}
输出结果:
3.9 notBetween
测试代码:
@RequestMapping("/test")
public void test() {
System.out.println("___notBetween___");
QueryWrapper<User> wrapper = new QueryWrapper<>();
List<User> list = userService.list(wrapper.notBetween("age", 20, 27));
list.forEach(System.out::println);
}
输出结果:
3.9 like
测试代码:
@RequestMapping("/test")
public void test() {
System.out.println("___like___");
QueryWrapper<User> wrapper = new QueryWrapper<>();
List<User> list = userService.list(wrapper.like("name", "hk%"));
list.forEach(System.out::println);
}
输出结果:
3.10 notLike
测试代码:
@RequestMapping("/test")
public void test() {
System.out.println("___notLike___");
QueryWrapper<User> wrapper = new QueryWrapper<>();
List<User> list = userService.list(wrapper.notLike("name", "hk%"));
list.forEach(System.out::println);
}
输出结果:
3.11 likeLeft
测试代码:
@RequestMapping("/test")
public void test() {
System.out.println("___likeLeft___");
QueryWrapper<User> wrapper = new QueryWrapper<>();
List<User> list = userService.list(wrapper.likeLeft("name", "%k11"));
list.forEach(System.out::println);
}
输出结果:
3.12 likeRight
测试代码:
@RequestMapping("/test")
public void test() {
System.out.println("___likeRight___");
QueryWrapper<User> wrapper = new QueryWrapper<>();
List<User> list = userService.list(wrapper.likeLeft("name", "hk%"));
list.forEach(System.out::println);
}
输出结果:
3.13 isNull
测试代码:
@RequestMapping("/test")
public void test() {
System.out.println("___isNull___");
QueryWrapper<User> wrapper = new QueryWrapper<>();
List<User> list = userService.list(wrapper.isNull("name"));
list.forEach(System.out::println);
}
输出结果:
3.14 isNotNull
测试代码:
@RequestMapping("/test")
public void test() {
System.out.println("___isNotNull___");
QueryWrapper<User> wrapper = new QueryWrapper<>();
List<User> list = userService.list(wrapper.isNotNull("name"));
list.forEach(System.out::println);
}
输出结果:
3.15 in
测试代码:
@RequestMapping("/test")
public void test() {
System.out.println("___in___");
QueryWrapper<User> wrapper = new QueryWrapper<>();
List<User> list = userService.list(wrapper.in("age", 25 ,27));
list.forEach(System.out::println);
}
输出结果:
3.16 notIn
测试代码:
@RequestMapping("/test")
public void test() {
System.out.println("___notIn___");
QueryWrapper<User> wrapper = new QueryWrapper<>();
List<User> list = userService.list(wrapper.notIn("age", 25 ,27));
list.forEach(System.out::println);
}
输出结果:
3.17 inSql
测试代码:
@RequestMapping("/test")
public void test() {
System.out.println("___inSql___");
QueryWrapper<User> wrapper = new QueryWrapper<>();
List<User> list = userService.list(wrapper.inSql("age", "select age from user where age > 25"));
list.forEach(System.out::println);
}
输出结果:
3.18 notInSql
测试代码:
@RequestMapping("/test")
public void test() {
System.out.println("___notInSql___");
QueryWrapper<User> wrapper = new QueryWrapper<>();
List<User> list = userService.list(wrapper.notInSql("age", "select age from user where age > 25"));
list.forEach(System.out::println);
}
输出结果:
3.19 groupBy
测试代码:
@RequestMapping("/test")
public void test() {
System.out.println("___groupBy___");
QueryWrapper<User> wrapper = new QueryWrapper<>();
List<User> list = userService.list(wrapper.groupBy("id", "name"));
list.forEach(System.out::println);
}
输出结果:
3.20 orderBy
测试代码:
@RequestMapping("/test")
public void test() {
System.out.println("___orderByAsc___");
QueryWrapper<User> wrapper = new QueryWrapper<>();
List<User> list = userService.list(wrapper.orderByAsc("id"));
list.forEach(System.out::println);
System.out.println("___orderByDesc__");
QueryWrapper<User> wrapper1 = new QueryWrapper<>();
List<User> list1 = userService.list(wrapper1.orderByDesc("id"));
list1.forEach(System.out::println);
System.out.println("___orderBy____");
QueryWrapper<User> wrapper2 = new QueryWrapper<>();
List<User> list3 = userService.list(wrapper2.orderBy(true, true, "id"));
list3.forEach(System.out::println);
}
输出结果:
3.21 func
测试代码:
@RequestMapping("/test")
public void test() {
System.out.println("___orderByAsc___");
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
List<User> list = userService.list(queryWrapper.func(i -> {
if (true) {
i.eq("id", 2);
} else {
i.eq("id", 3);
}
}));
list.forEach(System.out::println);
}
输出结果:
3.22 or
测试代码:
@RequestMapping("/test")
public void test() {
System.out.println("___or___");
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
List<User> list = userService.list(queryWrapper
.eq("id",2)
.or()
.eq("name", "hk11")
);
list.forEach(System.out::println);
}
输出结果:
3.23 and
测试代码:
@RequestMapping("/test")
public void test() {
System.out.println("___and___");
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
List<User> list = userService.list(queryWrapper
.and(i -> i.eq("email", "2284612137@qq.com").ne("id", "2"))
);
list.forEach(System.out::println);
}
输出结果:
3.24 nested
测试代码:
@RequestMapping("/test")
public void test() {
System.out.println("___nested___");
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
List<User> list = userService.list(queryWrapper
.nested(i -> i.eq("email", "2284612137@qq.com").ne("id", "2"))
);
list.forEach(System.out::println);
}
输出结果:
3.25 apply
测试代码:
@RequestMapping("/test")
public void test() {
System.out.println("___apply__");
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
List<User> list = userService.list(queryWrapper
.apply("id={0}", 2)
);
list.forEach(System.out::println);
}
输出结果:
3.26 last
测试代码:
@RequestMapping("/test")
public void test() {
System.out.println("___last__");
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
List<User> list = userService.list(queryWrapper
.last("limit 1")
);
list.forEach(System.out::println);
}
}
输出结果:
3.27 exists
代码测试:
@RequestMapping("/test")
public void test() {
System.out.println("___exists__");
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
List<User> list = userService.list(queryWrapper
.exists("select id from user where id = 2")
);
list.forEach(System.out::println);
System.out.println("__notExists");
List<User> list1 = userService.list(queryWrapper
.notExists("select id from user where id = 2")
);
list1.forEach(System.out::println);
}
输出结果:
3.使用 Wrapper 自定义SQL
在使用了mybatis-plus之后, 自定义SQL的同时也想使用Wrapper的便利应该怎么办?
在mybatis-plus版本3.0.7得到了完美解决 版本需要大于或等于3.0.7, 以下两种方案取其一即可