QueryWrapper<Student> qw = new QueryWrapper<>(); qw.isNotNull("username"); int stuNum = Math.toIntExact(studentMapper.selectCount(qw));解释一下这段代码的意思
时间: 2023-05-18 19:04:07 浏览: 156
这段代码使用了 MyBatis-Plus 框架中的 QueryWrapper 类,用于构建查询条件。其中,isNotNull 方法表示查询条件为 username 不为空的记录,selectCount 方法表示查询满足条件的记录数,最后使用 Math.toIntExact 方法将结果转换为 int 类型并赋值给 stuNum 变量。
相关问题
@RequestMapping("/stayoutlateList") public String stayoutlateList(Model model, HttpSession session) { Student student = (Student) session.getAttribute("loginUserinfo"); LambdaQueryWrapper<StayOutLate> stayOutLateLambdaQueryWrapper = new LambdaQueryWrapper<>(); stayOutLateLambdaQueryWrapper.eq(StayOutLate::getStuNum,student.getStudentNumber()); List<StayOutLate> stayOutLates = stayOutLateService.list(stayOutLateLambdaQueryWrapper); SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); stayOutLates.forEach(stayOutLate -> { String format = sdf1.format(stayOutLate.getCreatTime()); String format1 = sdf1.format(stayOutLate.getStayTime()); stayOutLate.setCreatTimeStr(format); stayOutLate.setStayTimeStr(format1); }); model.addAttribute("stayoutlateList", stayOutLates); return "stayoutlateList"; }请详细解释每一行代码
1. `@RequestMapping("/stayoutlateList")`: 声明一个映射到 `/stayoutlateList` 的请求处理方法。
2. `public String stayoutlateList(Model model, HttpSession session) {`: 声明一个名为 `stayoutlateList` 的公共方法,该方法需要 `Model` 对象和 `HttpSession` 对象作为参数,返回一个 `String` 对象。
3. `Student student = (Student) session.getAttribute("loginUserinfo");`: 从 HttpSession 对象中获取名为 `loginUserinfo` 的属性值,并将其转换为 `Student` 对象。
4. `LambdaQueryWrapper<StayOutLate> stayOutLateLambdaQueryWrapper = new LambdaQueryWrapper<>();`: 创建一个 `LambdaQueryWrapper` 对象,并指定其泛型类型为 `StayOutLate`。
5. `stayOutLateLambdaQueryWrapper.eq(StayOutLate::getStuNum,student.getStudentNumber());`: 在 `LambdaQueryWrapper` 对象中添加一个查询条件,查询 `StayOutLate` 对象中的 `stuNum` 字段是否等于当前学生的学号。
6. `List<StayOutLate> stayOutLates = stayOutLateService.list(stayOutLateLambdaQueryWrapper);`: 使用 `stayOutLateLambdaQueryWrapper` 对象查询数据库,获取符合条件的 `StayOutLate` 对象,并将其封装到一个 `List` 集合中。
7. `SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");`: 创建一个名为 `sdf1` 的 `SimpleDateFormat` 对象,用于将日期类型转换为指定格式的字符串。
8. `stayOutLates.forEach(stayOutLate -> {`: 遍历 `stayOutLates` 集合中的每个元素,并执行花括号中的代码块。
9. `String format = sdf1.format(stayOutLate.getCreatTime());`: 将 `stayOutLate` 对象中的 `creatTime` 字段转换为指定格式的字符串,并将其赋值给 `format` 变量。
10. `String format1 = sdf1.format(stayOutLate.getStayTime());`: 将 `stayOutLate` 对象中的 `stayTime` 字段转换为指定格式的字符串,并将其赋值给 `format1` 变量。
11. `stayOutLate.setCreatTimeStr(format);`: 将 `format` 变量的值设置到 `stayOutLate` 对象的 `creatTimeStr` 字段中。
12. `stayOutLate.setStayTimeStr(format1);`: 将 `format1` 变量的值设置到 `stayOutLate` 对象的 `stayTimeStr` 字段中。
13. `});`: 结束 `forEach` 循环。
14. `model.addAttribute("stayoutlateList", stayOutLates);`: 将 `stayOutLates` 集合添加到 `Model` 对象中,属性名为 `stayoutlateList`。
15. `return "stayoutlateList";`: 返回一个字符串 `"stayoutlateList"`,表示要跳转到名为 `stayoutlateList` 的视图。
@RequestMapping("/askforleaveList") public String askforleaveList(Model model, HttpSession session) { Student student = (Student) session.getAttribute("loginUserinfo"); LambdaQueryWrapper<Vacate> vacateLambdaQueryWrapper = new LambdaQueryWrapper<>(); vacateLambdaQueryWrapper.eq(Vacate::getStuNum,student.getStudentNumber()); List<Vacate> vacates = vacateService.list(vacateLambdaQueryWrapper); SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); vacates.forEach(vacate -> { String format = sdf1.format(vacate.getCreatTime()); String format1 = sdf1.format(vacate.getStartTime()); String format2 = sdf1.format(vacate.getEndTime()); vacate.setCreatTimeStr(format); vacate.setStartTimeStr(format1); vacate.setEndTimeStr(format2); }); model.addAttribute("askforleaveList", vacates); return "askforleaveList"; }请详细解释每一行代码
好的,我来为你解释每一行代码的作用:
```
@RequestMapping("/askforleaveList")
public String askforleaveList(Model model, HttpSession session) {
```
这是一个Spring MVC的注解,表示将HTTP请求映射到Controller中的一个方法。当用户访问“/askforleaveList”时,该方法会被调用。该方法接受两个参数:Model和HttpSession。
```
Student student = (Student) session.getAttribute("loginUserinfo");
```
从HttpSession中获取名为“loginUserinfo”的属性,并将其转换为Student类型。假设该属性是之前存储在session中的登录用户信息。
```
LambdaQueryWrapper<Vacate> vacateLambdaQueryWrapper = new LambdaQueryWrapper<>();
vacateLambdaQueryWrapper.eq(Vacate::getStuNum,student.getStudentNumber());
```
创建一个LambdaQueryWrapper对象,用于构建查询条件。这里使用eq()方法指定查询条件:Vacate表中的StuNum字段等于当前登录学生的学号。
```
List<Vacate> vacates = vacateService.list(vacateLambdaQueryWrapper);
```
调用vacateService的list()方法,根据之前构建的查询条件,从数据库中查询Vacate表中符合条件的记录,并将查询结果存储到List<Vacate>中。
```
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
vacates.forEach(vacate -> {
String format = sdf1.format(vacate.getCreatTime());
String format1 = sdf1.format(vacate.getStartTime());
String format2 = sdf1.format(vacate.getEndTime());
vacate.setCreatTimeStr(format);
vacate.setStartTimeStr(format1);
vacate.setEndTimeStr(format2);
});
```
创建一个SimpleDateFormat对象,用于将Date类型转换为指定格式的字符串。遍历之前查询到的Vacate记录列表,将Vacate中的CreatTime、StartTime和EndTime字段转换为字符串类型,并存储到对应的CreatTimeStr、StartTimeStr和EndTimeStr字段中。
```
model.addAttribute("askforleaveList", vacates);
```
将查询到的Vacate记录列表存储到Model中,以便在视图页面中使用。
```
return "askforleaveList";
```
返回视图页面的名称,即“askforleaveList”,用于告知Spring MVC框架渲染哪个页面。
阅读全文