当前位置: 首页 > ops >正文

0-1搭建springboot+vue的教务管理系统(核心源码)

 

目录

后端核心代码:

control层

service 层

mapper层


 

后端核心代码:

control层:

classControlsImpl
package com.itheima.controls.impl;import com.itheima.mapper.ClassMapper;
import com.itheima.pojo.Clazz;
import com.itheima.pojo.Emp;
import com.itheima.pojo.PageResult;
import com.itheima.pojo.Result;
import com.itheima.service.ClassService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.*;import java.beans.PropertyEditorSupport;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.List;@RestController
@RequestMapping("/clazzs")
public class ClassControlsImpl {private static final Logger log = LoggerFactory.getLogger(DeptControlsImpl.class);@Autowiredprivate ClassService classService;@InitBinderpublic void initBinder(WebDataBinder binder) {binder.registerCustomEditor(LocalDate.class, new PropertyEditorSupport() {@Overridepublic void setAsText(String text) throws IllegalArgumentException {if (text == null || text.trim().isEmpty()) {setValue(null);} else {try {setValue(LocalDate.parse(text.trim(), DateTimeFormatter.ofPattern("yyyy-MM-dd")));} catch (DateTimeParseException e) {throw new IllegalArgumentException("Invalid date format: " + text);}}}});}@GetMappingpublic Result page(@RequestParam(defaultValue = "1") Integer page,@RequestParam(defaultValue = "10") Integer pageSize,String name,@DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate begin,@DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate end){log.info("分页查询:{}{}{},,,,,;,{}{}{}",page,pageSize,name,begin,end);PageResult<Clazz> pageResult =classService.page(page,pageSize,name,begin,end);return Result.success(pageResult);}@DeleteMapping("/{id}")public Result deleteById(@PathVariable Integer id){classService.deleteById(id);return Result.success();}@PostMappingpublic Result insert(@RequestBody Clazz clazz){log.info("要添加的班级信息",clazz);classService.insert(clazz);return Result.success();}@GetMapping("/{id}")public Result getInfo(@PathVariable Integer id){log.info("查询回显返回的id为:{}",id);Clazz clazz = classService.getInfo(id);return Result.success(clazz);}@PutMappingpublic Result update(@RequestBody Clazz clazz){log.info("要修改的数据为:{}",clazz);classService.update(clazz);return Result.success();}@GetMapping("/list")public Result selectList(){List<Clazz> clazz = classService.selectList();return Result.success(clazz);}
}deptControlsImpl
package com.itheima.controls.impl;import com.itheima.anno.Log;
import com.itheima.pojo.Dept;
import com.itheima.pojo.Result;
import com.itheima.service.DeptService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.util.List;@RestController
public class DeptControlsImpl {private static final Logger log = LoggerFactory.getLogger(DeptControlsImpl.class);@Autowiredprivate DeptService deptservice;@GetMapping("/depts")public Result list(){
//        System.out.println("查看全部部门数据");log.info("查看全部数据");List<Dept> depts = deptservice.findAll();return Result.success(depts);}// 通过id删除@Log@DeleteMapping("/depts")public Result deleteById(Integer id){log.info("要删除的部门id:{}",id);deptservice.deleteById(id);return Result.success();}// 通过前端传的部门名称(namne)添加数据、@Log@PostMapping("/depts")public Result add(@RequestBody Dept dept){log.info("要添加的部门:{}",dept);deptservice.add(dept);return Result.success();}// 通过点击要修改的部门让后端返回前端要修改的部门信息// id回显@GetMapping("/depts/{id}")public Result getInfo(@PathVariable Integer id){Dept dept = deptservice.getInfo(id);return Result.success(dept);}@Log@PutMapping("/depts")public Result update(@RequestBody Dept dept){log.info("要更新的部门:{}",dept);deptservice.update(dept);return Result.success();}
}
EmpControlsImpl
package com.itheima.controls.impl;import com.itheima.pojo.Emp;
import com.itheima.pojo.PageResult;
import com.itheima.pojo.Result;
import com.itheima.service.EmpService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.*;import java.beans.PropertyEditorSupport;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.List;@RequestMapping("/emps")
@RestController
public class EmpControlsImpl {@Autowiredprivate EmpService empService;// 日志// private static final Logger log = LoggerFactory.getLogger(EmpControlsIMpl.class);private static final Logger log = LoggerFactory.getLogger(EmpControlsImpl.class);// 处理前端传回来的日期格式转换@InitBinderpublic void initBinder(WebDataBinder binder) {binder.registerCustomEditor(LocalDate.class, new PropertyEditorSupport() {@Overridepublic void setAsText(String text) throws IllegalArgumentException {if (text == null || text.trim().isEmpty()) {setValue(null);} else {try {setValue(LocalDate.parse(text.trim(), DateTimeFormatter.ofPattern("yyyy-MM-dd")));} catch (DateTimeParseException e) {throw new IllegalArgumentException("Invalid date format: " + text);}}}});}@GetMappingpublic Result page(@RequestParam Integer page, @RequestParam Integer pageSize,@RequestParam String name,@RequestParam(required = false) Integer gender,@DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate begin,@DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate end){log.info("分页查询:{}{}{}{}{}{}",page,pageSize,name,gender,begin,end);PageResult<Emp> pageResult = empService.page(page,pageSize,name,gender,begin,end);log.info("hahaha{}",pageResult);return Result.success(pageResult);}@PostMappingpublic Result save(@RequestBody Emp emp){log.info("要添加的数据{}",emp);empService.save(emp);return Result.success();}@DeleteMappingpublic Result deleteByIds(@RequestParam List<Integer> ids){log.info("要删除的id为{}",ids);empService.deleteByIds(ids);return Result.success();}@GetMapping("/{id}")public Result getInfo(@PathVariable Integer id){log.info("根据回显查询的员工id:{}",id);Emp emp = empService.getInfo(id);log.info("要修改的数据为:{}",emp);return Result.success(emp);}@PutMappingpublic Result update(@RequestBody Emp emp){log.info("要修改的数据为:{}",emp);empService.update(emp);return Result.success();}//////////////////////////@GetMapping("/list")public Result select(){List<Emp> emp = empService.select();log.info("查询所有员工信息{}",emp);return Result.success(emp);}}
LoginCOntrolsImpl
package com.itheima.controls.impl;import com.itheima.pojo.Emp;
import com.itheima.pojo.LoginInfo;
import com.itheima.pojo.Result;
import com.itheima.service.EmpService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;@RestController
public class LoginControlsImpl {private static final Logger log = LoggerFactory.getLogger(EmpControlsImpl.class);@Autowiredprivate EmpService empService;@PostMapping("/login")public Result login(@RequestBody Emp emp){log.info("登录:{}",emp);LoginInfo loginInfo = empService.login(emp);if (loginInfo != null){return Result.success(loginInfo);}return Result.error("用户名或者密码错误");}}
ReportControlsImpl
package com.itheima.controls.impl;import com.itheima.pojo.JobOption;
import com.itheima.pojo.Result;
import com.itheima.pojo.StudentOption;
import com.itheima.service.ReportService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.List;
import java.util.Map;@RestController
@RequestMapping("/report")
public class ReportControlsImpl {@Autowiredprivate ReportService reportService;private static final Logger log = LoggerFactory.getLogger(EmpControlsImpl.class);@GetMapping("/empJobData")public Result getEmpJobData(){log.info("统计员工职位人数");JobOption jobOption = reportService.getEmpJobData();return Result.success(jobOption);}@GetMapping("/empGenderData")public Result getEmpGenderData(){log.info("统计员工性别人数");List<Map<String,Object>> mapList = reportService.getEmpGenderData();return Result.success(mapList);}@GetMapping("/studentCountData")public Result getStudentMessageData(){log.info("学员信息统计");StudentOption studentOption = reportService.getStudentMessageData();return Result.success(studentOption);}@GetMapping("/studentDegreeData")public Result getStudentDegreeData(){log.info("学院学历统计");List<Map<String,Object>> mapList = reportService.getStudentDegreeData();return Result.success(mapList);}
}StudentControlsImpl
package com.itheima.controls.impl;import com.itheima.pojo.PageResult;
import com.itheima.pojo.Result;
import com.itheima.pojo.Student;
import com.itheima.service.StudentService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.util.List;@RequestMapping("/students")
@RestController
public class StudentControlsImpl {@Autowiredprivate StudentService studentService;private static final Logger log = LoggerFactory.getLogger(EmpControlsImpl.class);@GetMappingpublic Result page(@RequestParam(defaultValue = "1") Integer page,@RequestParam(defaultValue = "10") Integer pageSize,String name,Integer degree,Integer clazzId){log.info("分页查询:{}{}{}{}{}{}",page,pageSize,name,degree,clazzId);PageResult<Student> pageResult = studentService.page(page,pageSize,name,degree,clazzId);return Result.success(pageResult);}@PostMappingpublic Result insert(@RequestBody Student student){log.info("前端添加的学生信息:{}",student);studentService.insert(student);return Result.success();}@GetMapping("/{id}")public Result getInfo(@PathVariable Integer id){log.info("id回显的数据是:{}",id);Student student = studentService.getInfo(id);return Result.success(student);}@PutMappingpublic Result update(@RequestBody Student student){log.info("要修改的学生信息:{}",student);studentService.update(student);return Result.success();}@DeleteMapping("/{ids}")public Result deleteByIds(@PathVariable List<Integer> ids){log.info("要删除的学生id为:{}",ids);studentService.deleteByIds(ids);return Result.success();}@PutMapping("/violation/{id}/{score}")public Result violent(@PathVariable Integer id,@PathVariable Integer score){log.info("传进来的要处理的违纪信息为:{},{}",id,score);studentService.violent(id,score);return Result.success();}
}
UploadControlsImpl
package com.itheima.controls.impl;import com.itheima.pojo.Result;
import com.itheima.utils.AliyunOSSOperator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;import java.io.File;
import java.io.IOException;
import java.util.UUID;@RestController
public class UploadControlsImpl {private static final Logger log = LoggerFactory.getLogger(EmpControlsImpl.class);@Autowiredprivate AliyunOSSOperator aliyunOSSOperator;
//    本地磁盘存储方案
//    @PostMapping("/upload")
//    public Result upload(String name, Integer age, MultipartFile file) throws IOException {
//        log.info("接收参数:{},{},{}",name,age,file);
//        String originalFilename = file.getOriginalFilename();
//        String newFileName = UUID.randomUUID().toString()+originalFilename.substring(originalFilename.lastIndexOf("."));
//        file.transferTo(new File("D:/image/" + newFileName));
//        return Result.success();
//    }@PostMapping("/upload")public Result upload(MultipartFile file) throws Exception{log.info("文件上传:{}",file.getOriginalFilename());String url = aliyunOSSOperator.upload(file.getBytes(),file.getOriginalFilename());log.info("文件上传OSS,url:{}",url);return Result.success(url);}
}

service 层

package com.itheima.service.impl;import com.itheima.exception.ClassNotEmptyException;
import com.itheima.mapper.ClassMapper;
import com.itheima.mapper.EmpMapper;
import com.itheima.mapper.StudentMapper;
import com.itheima.pojo.Clazz;
import com.itheima.pojo.PageResult;
import com.itheima.service.ClassService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;@Service
public class ClassServiceImpl implements ClassService {@Autowiredprivate ClassMapper classMapper;@Autowiredprivate EmpMapper empMapper;@Autowiredprivate StudentMapper studentMapper;
//    @Transactional(rollbackFor = {Exception.class})@Overridepublic PageResult<Clazz> page(Integer page, Integer pageSize, String name, LocalDate begin, LocalDate end) {Integer start = (page-1)*pageSize;Long total = classMapper.total(name,begin,end);List<Clazz> rows = classMapper.page(start,pageSize,name,begin,end);PageResult<Clazz> pageResult = new PageResult<Clazz>(total,rows);pageResult.getRows().forEach(item->{if(LocalDate.now().compareTo(item.getBeginDate())<0){item.setStatus("未开课");} else if (LocalDate.now().compareTo(item.getEndDate())>0) {item.setStatus("已结课");}else {item.setStatus("再读中");}});return pageResult;}@Overridepublic void deleteById(Integer id) {Integer count=0;count = studentMapper.selectById(id);if (count>0) {throw new ClassNotEmptyException("对不起,该班级下有学生,不能删除!");}classMapper.deleteById(id);}@Overridepublic void insert(Clazz clazz) {clazz.setCreateTime(LocalDateTime.now());clazz.setUpdateTime(LocalDateTime.now());classMapper.insert(clazz);}@Overridepublic Clazz getInfo(Integer id) {return classMapper.getInfo(id);}@Overridepublic void update(Clazz clazz) {clazz.setUpdateTime(LocalDateTime.now());classMapper.update(clazz);}@Overridepublic List<Clazz> selectList() {return classMapper.selectList();}
}
////////////////////////////////////////////
package com.itheima.service.impl;import com.itheima.exception.ClassNotEmptyException;
import com.itheima.mapper.ClassMapper;
import com.itheima.mapper.EmpMapper;
import com.itheima.mapper.StudentMapper;
import com.itheima.pojo.Clazz;
import com.itheima.pojo.PageResult;
import com.itheima.service.ClassService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;@Service
public class ClassServiceImpl implements ClassService {@Autowiredprivate ClassMapper classMapper;@Autowiredprivate EmpMapper empMapper;@Autowiredprivate StudentMapper studentMapper;
//    @Transactional(rollbackFor = {Exception.class})@Overridepublic PageResult<Clazz> page(Integer page, Integer pageSize, String name, LocalDate begin, LocalDate end) {Integer start = (page-1)*pageSize;Long total = classMapper.total(name,begin,end);List<Clazz> rows = classMapper.page(start,pageSize,name,begin,end);PageResult<Clazz> pageResult = new PageResult<Clazz>(total,rows);pageResult.getRows().forEach(item->{if(LocalDate.now().compareTo(item.getBeginDate())<0){item.setStatus("未开课");} else if (LocalDate.now().compareTo(item.getEndDate())>0) {item.setStatus("已结课");}else {item.setStatus("再读中");}});return pageResult;}@Overridepublic void deleteById(Integer id) {Integer count=0;count = studentMapper.selectById(id);if (count>0) {throw new ClassNotEmptyException("对不起,该班级下有学生,不能删除!");}classMapper.deleteById(id);}@Overridepublic void insert(Clazz clazz) {clazz.setCreateTime(LocalDateTime.now());clazz.setUpdateTime(LocalDateTime.now());classMapper.insert(clazz);}@Overridepublic Clazz getInfo(Integer id) {return classMapper.getInfo(id);}@Overridepublic void update(Clazz clazz) {clazz.setUpdateTime(LocalDateTime.now());classMapper.update(clazz);}@Overridepublic List<Clazz> selectList() {return classMapper.selectList();}
}
//////////////////////////////////////////////////
package com.itheima.service.impl;import com.itheima.mapper.EmpLogMapper;
import com.itheima.pojo.EmpLog;
import com.itheima.service.EmpLogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;@Transactional(propagation = Propagation.REQUIRES_NEW)
@Service
public class EmpLogServiceImpl implements EmpLogService {@Autowiredprivate EmpLogMapper empLogMapper;@Overridepublic void insertLog(EmpLog empLog) {empLogMapper.insert(empLog);}
}
///////////////////////////////////////////////////
package com.itheima.service.impl;import com.itheima.mapper.EmpLogMapper;
import com.itheima.pojo.EmpLog;
import com.itheima.service.EmpLogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;@Transactional(propagation = Propagation.REQUIRES_NEW)
@Service
public class EmpLogServiceImpl implements EmpLogService {@Autowiredprivate EmpLogMapper empLogMapper;@Overridepublic void insertLog(EmpLog empLog) {empLogMapper.insert(empLog);}
}
////////////////////////////////////////////////////////
package com.itheima.service.impl;import com.itheima.mapper.OperateMapper;
import com.itheima.pojo.OperateLog;
import com.itheima.pojo.PageResult;
import com.itheima.service.OperateService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class OperateLogServiceImpl implements OperateService {@Autowiredprivate OperateMapper operateMapper;@Overridepublic PageResult<OperateLog> selectLogList(Integer page, Integer pageSize) {Long total = Long.valueOf(operateMapper.total());Integer start = (page-1)*pageSize;List<OperateLog> operateLogs = operateMapper.selectLogs(start,pageSize);return new PageResult<>(total,operateLogs);}
}
//////////////////////////////////////////////////package com.itheima.service.impl;import com.itheima.mapper.EmpMapper;
import com.itheima.mapper.StudentMapper;
import com.itheima.pojo.JobOption;
import com.itheima.pojo.StudentOption;
import com.itheima.service.EmpService;
import com.itheima.service.ReportService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;
import java.util.Map;@Service
public class ReportServiceImpl implements ReportService {@Autowiredprivate EmpMapper empMapper;@Autowiredprivate StudentMapper studentMapper;@Overridepublic JobOption getEmpJobData() {List<Map<String,Object>> list = empMapper.countEmpJobData();List<Object> keyList = list.stream().map(item->item.get("jobName")).toList();List<Object> valueList = list.stream().map(item->item.get("count")).toList();return new JobOption(keyList,valueList);}@Overridepublic List<Map<String, Object>> getEmpGenderData() {return empMapper.countEmpGenderData();}@Overridepublic StudentOption getStudentMessageData() {List<Map<String,Object>> list = studentMapper.getStudentMessageData();List<Object> listKeys = list.stream().map(item->item.get("name")).toList();List<Object> listValues = list.stream().map(item->item.get("count")).toList();return new StudentOption(listKeys,listValues);}@Overridepublic List<Map<String, Object>> getStudentDegreeData() {return studentMapper.getStudentDegreeData();}
}///////////////////////////////////////////////
package com.itheima.service.impl;import com.itheima.mapper.StudentMapper;
import com.itheima.pojo.PageResult;
import com.itheima.pojo.Student;
import com.itheima.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.time.LocalDateTime;
import java.util.List;@Service
public class StudentServiceImpl implements StudentService {@Autowiredprivate StudentMapper studentMapper;@Overridepublic PageResult<Student> page(Integer page, Integer pageSize, String name, Integer degree, Integer clazzId) {Long total = studentMapper.total(name,degree,clazzId);Integer start = (page-1)*pageSize;List<Student> students = studentMapper.page(start,pageSize,name,degree,clazzId);return new PageResult<Student>(total,students);}@Overridepublic void insert(Student student) {student.setUpdateTime(LocalDateTime.now());student.setCreateTime(LocalDateTime.now());studentMapper.insert(student);}@Overridepublic Student getInfo(Integer id) {return studentMapper.getInfo(id);}@Overridepublic void update(Student student) {student.setUpdateTime(LocalDateTime.now());studentMapper.update(student);}@Overridepublic void deleteByIds(List<Integer> ids) {studentMapper.deleteByIds(ids);}@Overridepublic void violent(Integer id,Integer score) {Student student = studentMapper.selectStudentViolentMessage(id);student.setViolationCount((short) (student.getViolationCount()+1));student.setViolationScore((short) (student.getViolationScore()+score));studentMapper.update(student);}
}

mapper: 

package com.itheima.mapper;import com.itheima.pojo.Clazz;
import com.itheima.pojo.PageResult;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;import java.time.LocalDate;
import java.util.List;@Mapper
public interface ClassMapper {@Select("SELECT COUNT(c.id) FROM clazz c " +"WHERE (c.name LIKE CONCAT('%', #{name}, '%') OR #{name} IS NULL) " +"AND (c.begin_date BETWEEN #{begin} AND #{end} OR (#{begin} IS NULL AND #{end} IS NULL))")Long total(String name, LocalDate begin, LocalDate end);List<Clazz> page(Integer start, Integer pageSize, String name, LocalDate begin, LocalDate end);void deleteById(Integer id);void insert(Clazz clazz);Clazz getInfo(Integer id);void update(Clazz clazz);List<Clazz> selectList();
}
//////////////////////////////////////////////
package com.itheima.mapper;import com.itheima.pojo.Dept;
import org.apache.ibatis.annotations.*;import java.util.List;@Mapper
public interface DeptMapper {@Select("select * from dept order by update_time desc")public List<Dept> findAll();// 删除员工@Delete("delete from dept where id=#{id}")public void deleteById(Integer id);// 通过前端返回的部门信息添加部门@Insert("insert into dept (name,create_time,update_time) values (#{name},#{createTime},#{updateTime})")void add(Dept dept);// 回显查询@Select("select * from dept where id=#{id}")Dept getInfo(Integer id);// 修改数据@Update("update dept set name=#{name},update_time=#{updateTime} where id=#{id}")void update(Dept dept);}////////////////////////////////////////////////////////////
package com.itheima.mapper;import com.itheima.pojo.EmpExpr;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;import java.util.List;@Mapper
public interface EmpExprMapper {public void insertBatch(List<EmpExpr> exprList);void deleteByEmpIds(List<Integer> ids);
}
///////////////////////////////////////////////////////////////////
package com.itheima.mapper;import com.itheima.pojo.EmpLog;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;@Mapper
public interface EmpLogMapper {@Insert("insert into emp_log (operate_time, info) values (#{operateTime}, #{info})")public void insert(EmpLog empLog);}
//////////////////////////////////////////////////////////////////
package com.itheima.mapper;import com.itheima.pojo.Emp;
import org.apache.ibatis.annotations.*;import java.time.LocalDate;
import java.util.List;
import java.util.Map;@Mapper
public interface EmpMapper {@Select("SELECT COUNT(*) FROM emp e " +"LEFT JOIN dept d ON e.dept_id = d.id " +"WHERE (e.name LIKE CONCAT('%', #{name}, '%') OR #{name} IS NULL) " +"AND (e.gender = #{gender} OR #{gender} IS NULL) " +"AND (e.entry_date BETWEEN #{begin} AND #{end} " +"     OR (#{begin} IS NULL AND #{end} IS NULL))")public Long count(String name, Integer gender, LocalDate begin,LocalDate end);
//    @Select("select e.*,d.name deptName from emp e left join dept d on e.dept_id=d.id where e.name like concat('%',#{name},'%') and e.gender=#{gender} and e.entry_date between #{begin} and #{end} order by e.entry_date DESC limit #{start},#{pageSize}")public List<Emp> list(Integer start, Integer pageSize, String name, Integer gender, LocalDate begin,LocalDate end);
// 主键返回@Options(useGeneratedKeys = true,keyProperty = "id")@Insert("insert into emp(username,name,gender,phone,job,salary,image,entry_date,dept_id,create_time,update_time) values (#{username},#{name},#{gender},#{phone},#{job},#{salary},#{image},#{entryDate},#{deptId},#{createTime},#{updateTime})")public void insert(Emp emp);void deleteByIds(List<Integer> ids);Emp getInfo(Integer id);void updateEmp(Emp emp);@MapKey("jobName")List<Map<String,Object>> countEmpJobData();@MapKey("name")List<Map<String, Object>> countEmpGenderData();///////////////////////////////////////////// 学生管理List<Emp> select();Integer selectDeptStudentMessage(Integer id);Emp selectByUsernameAndPassword(Emp emp);
}/////////////////////////////////////////////////////
package com.itheima.mapper;import com.itheima.pojo.OperateLog;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;import java.util.List;@Mapper
public interface OperateMapper {void deleteLog(List<Integer> ids);@Select("select count(*) from operate_log")Integer total();@Select("select o.id,o.operate_emp_id,o.operate_time,o.class_name,o.method_name,o.method_params,o.return_value,o.cost_time,e.name as operateEmpName from operate_log o left join emp e on e.id = o.operate_emp_id limit #{start},#{pageSize}")List<OperateLog> selectLogs(Integer start, Integer pageSize);
}
////////////////////////////////////////////////////////////////////
package com.itheima.mapper;import com.itheima.pojo.Student;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;import java.util.List;
import java.util.Map;@Mapper
public interface StudentMapper {// 删除判断Integer selectById(Integer id);@Select("SELECT COUNT(*) FROM student " +"WHERE (#{name} IS NULL OR name LIKE CONCAT('%', #{name}, '%')) " +"AND (#{degree} IS NULL OR degree = #{degree}) " +"AND (#{clazzId} IS NULL OR clazz_id = #{clazzId})")Long total(String name, Integer degree, Integer clazzId);List<Student> page(Integer start, Integer pageSize, String name, Integer degree, Integer clazzId);@Insert("insert into student(name,no,gender,phone,id_card,is_college," +"address,degree,graduation_date,clazz_id" +",create_time,update_time) values (#{name},#{no}," +"#{gender},#{phone},#{idCard},#{isCollege},#{address},#{degree},#{graduationDate}," +"#{clazzId},#{createTime},#{updateTime})")void insert(Student student);Student getInfo(Integer id);void update(Student student);void deleteByIds(List<Integer> ids);Student selectStudentViolentMessage(Integer id);@MapKey("name")List<Map<String, Object>> getStudentMessageData();@MapKey("name")List<Map<String, Object>> getStudentDegreeData();
}

需要源码的评论区扣666.

 

http://www.xdnf.cn/news/15379.html

相关文章:

  • Spring Boot 自带的 JavaMail 集成
  • Python在量化投资中的应用
  • 庸才的自我唤醒
  • Rust语言实战:LeetCode算法精解
  • Spring Boot 双数据源配置
  • 《解锁音频处理新姿势:探索Librosa的无限可能》
  • C++ 左值右值、左值引用右值引用、integral_constant、integral_constant的元模板使用案例
  • vue2/3生命周期使用建议
  • SpringBoot JAR 反编译替换文件
  • OneCode3.0 MCPServer:注解驱动的AI原生服务架构与实践
  • Docker部署语音转文字(STT)服务并接入Home Assistant
  • C++11 std::is_permutation:从用法到原理的深度解析
  • androidstudio 高低版本兼容
  • 破解 VMware 迁移难题:跨平台迁移常见问题及自动化解决方案
  • 【第六节】docker可视化工具portainer安装
  • Angular 框架下 AI 驱动的企业级大前端应用开
  • Docker 拉取镜像并离线迁移至云桌面指南(以Redis为例)
  • 高安全前端架构:Rust-WASM 黑盒技术揭秘
  • 安全初级(一)
  • vscode 源码编译
  • CA-IS3082W 隔离485 收发器芯片可能存在硬件BUG
  • 如何连接 AWS RDS 数据库实例
  • React Three Fiber 实现 3D 模型视图切换、显隐边框、显隐坐标轴
  • 从欧洲杯初现到世俱杯之巅:海信冰箱的“保鲜传奇”
  • IIS错误:Service Unavailable HTTP Error 503. The service is unavailable.
  • 专题:2025机器人产业深度洞察报告|附136份报告PDF与数据下载
  • 如何将数据从一部手机传输到另一部手机?
  • CompletableFuture 源码解析
  • 微服务引擎 MSE 及云原生 API 网关 2025 年 3 月产品动态
  • CentOS 安装jenkins笔记