3.3学习记录
- 完成了班级管理的分页查询和添加,完成了员工的查询
- ClazzController
点击查看代码
package com.itheima.controller;
import com.itheima.pojo.*;
import com.itheima.service.ClazzService;
import com.itheima.service.EmpService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@Slf4j
@RequestMapping("/clazzs")
@RestController
public class ClazzController {
@Autowired
private ClazzService clazzService;
/**
* 分页查询
*/
@GetMapping
public Result page(ClazzQueryParam clazzQueryParam){
log.info("分页查询: {}", clazzQueryParam);
PageResult<Clazz> pageResult = clazzService.page(clazzQueryParam);
return Result.success(pageResult);
}
//新增班级信息
@PostMapping
public Result save(@RequestBody Clazz clazz){
log.info("新增班级: {}", clazz);
clazzService.save(clazz);
return Result.success();
}
}
- ClazzMapper
点击查看代码
package com.itheima.mapper;
import com.itheima.pojo.Clazz;
import com.itheima.pojo.ClazzQueryParam;
import com.itheima.pojo.Emp;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Options;
import java.util.List;
@Mapper
public interface ClazzMapper {
List<Clazz> list(ClazzQueryParam clazzQueryParam);
@Options(useGeneratedKeys = true,keyProperty = "id")//获取生成主键
@Insert("insert into clazz(name,room,begin_date,end_date,master_id,subject,create_time,update_time)" +
"values(#{name},#{room},#{beginDate},#{endDate},#{masterId},#{subject},#{createTime},#{updateTime})")
void insert(Clazz clazz);
}
3.Clazz
点击查看代码
package com.itheima.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDate;
import java.time.LocalDateTime;
@Data
@NoArgsConstructor
public class Clazz {
private Integer id; //ID
private String name; //班级名称
private String room; //班级教室
private LocalDate beginDate; //开课时间
private LocalDate endDate; //结课时间
private Integer masterId; //班主任
private Integer subject; //学科
private LocalDateTime createTime; //创建时间
private LocalDateTime updateTime; //修改时间
private String masterName; //班主任姓名
private String status; //班级状态 - 未开班 , 在读 , 已结课
public Clazz(Integer id, String name, String room, LocalDate beginDate, LocalDate endDate, Integer masterId, Integer subject, LocalDateTime createTime, LocalDateTime updateTime, String masterName, String status) {
this.id = id;
this.name = name;
this.room = room;
this.beginDate = beginDate;
this.endDate = endDate;
this.masterId = masterId;
this.subject = subject;
this.createTime = createTime;
this.updateTime = updateTime;
this.masterName = masterName;
this.status = status;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getRoom() {
return room;
}
public void setRoom(String room) {
this.room = room;
}
public LocalDate getBeginDate() {
return beginDate;
}
public void setBeginDate(LocalDate beginDate) {
this.beginDate = beginDate;
}
public LocalDate getEndDate() {
return endDate;
}
public void setEndDate(LocalDate endDate) {
this.endDate = endDate;
}
public Integer getMasterId() {
return masterId;
}
public void setMasterId(Integer masterId) {
this.masterId = masterId;
}
public Integer getSubject() {
return subject;
}
public void setSubject(Integer subject) {
this.subject = subject;
}
public LocalDateTime getCreateTime() {
return createTime;
}
public void setCreateTime(LocalDateTime createTime) {
this.createTime = createTime;
}
public LocalDateTime getUpdateTime() {
return updateTime;
}
public void setUpdateTime(LocalDateTime updateTime) {
this.updateTime = updateTime;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getMasterName() {
return masterName;
}
public void setMasterName(String masterName) {
this.masterName = masterName;
}
@Override
public String toString() {
return "Clazz{" +
"id=" + id +
", name='" + name + '\'' +
", room='" + room + '\'' +
", beginDate=" + beginDate +
", endDate=" + endDate +
", masterId=" + masterId +
", subject=" + subject +
", createTime=" + createTime +
", updateTime=" + updateTime +
", masterName='" + masterName + '\'' +
", status='" + status + '\'' +
'}';
}
}
4.ClazzQueryParam
点击查看代码
package com.itheima.pojo;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDate;
public class ClazzQueryParam {
private Integer page=1;//页码
private Integer pageSize=5;//每页记录数
private String name;
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate begin;//入职开始时间
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate end;
public ClazzQueryParam(Integer page, Integer pageSize, LocalDate begin, String name, LocalDate end) {
this.page = page;
this.pageSize = pageSize;
this.begin = begin;
this.name = name;
this.end = end;
}
public Integer getPage() {
return page;
}
public void setPage(Integer page) {
this.page = page;
}
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public LocalDate getBegin() {
return begin;
}
public void setBegin(LocalDate begin) {
this.begin = begin;
}
public LocalDate getEnd() {
return end;
}
public void setEnd(LocalDate end) {
this.end = end;
}
@Override
public String toString() {
return "ClazzQueryParam{" +
"page=" + page +
", pageSize=" + pageSize +
", name='" + name + '\'' +
", begin=" + begin +
", end=" + end +
'}';
}
}
5.ClazzServiceImpl
点击查看代码
package com.itheima.service.impl;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.itheima.mapper.ClazzMapper;
import com.itheima.pojo.*;
import com.itheima.service.ClazzService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
@Service
public class ClazzServiceImpl implements ClazzService {
@Autowired
private ClazzMapper clazzMapper;
@Override
public void save(Clazz clazz) {
clazz.setCreateTime(LocalDateTime.now());
clazz.setUpdateTime(LocalDateTime.now());
clazzMapper.insert(clazz);
}
//班级管理分页查询
@Override
public PageResult<Clazz> page(ClazzQueryParam clazzQueryParam) {
//1. 设置分页参数(PageHelper)
PageHelper.startPage(clazzQueryParam.getPage(), clazzQueryParam.getPageSize());
//2. 执行查询
List<Clazz> classList = clazzMapper.list(clazzQueryParam);
//显示状态
classList.forEach(clazz -> {
LocalDate now = LocalDate.now();
if (now.isAfter(clazz.getEndDate())) {
clazz.setStatus("已结课");
} else if (now.isBefore(clazz.getBeginDate())) {
clazz.setStatus("未开班");
} else {
clazz.setStatus("在读中");
}
});
//3. 解析查询结果, 并封装
Page<Clazz> p = (Page<Clazz>) classList;
return new PageResult<Clazz>(p.getTotal(), p.getResult());
}
}
6.ClazzService
点击查看代码
package com.itheima.service;
import com.itheima.pojo.Clazz;
import com.itheima.pojo.ClazzQueryParam;
import com.itheima.pojo.PageResult;
public interface ClazzService {
void save(Clazz clazz);
PageResult<Clazz> page(ClazzQueryParam clazzQueryParam);
}

班主任部分需要对员工表信息进行查询

浙公网安备 33010602011771号