找回密码
 立即注册
查看: 45|回复: 0

JavaWeb(SpringBoot3+vue3)开发+教学管理系统项目实战之新增员工

[复制链接]

73

主题

3

精华

77

金币

技术维护QQ:515138

积分
165
发表于 6 天前 | 显示全部楼层 |阅读模式
JavaWeb(SpringBoot3+vue3)开发+教学管理系统项目实战之新增员工和批量保存经历
C层:
  1. package com.zidiu.controller;
  2. import com.zidiu.pojo.Emp;
  3. import com.zidiu.pojo.EmpQueryParam;
  4. import com.zidiu.pojo.PageResult;
  5. import com.zidiu.pojo.Result;
  6. import com.zidiu.service.EmpService;
  7. import lombok.extern.slf4j.Slf4j;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.format.annotation.DateTimeFormat;
  10. import org.springframework.web.bind.annotation.*;
  11. import java.time.LocalDate;
  12. @RequestMapping("/emps")
  13. @Slf4j
  14. @RestController
  15. public class EmpController {
  16.     @Autowired
  17.     private EmpService empService;
  18.     /**
  19.      * 查询员工列表带分页
  20.      */
  21.     @GetMapping
  22.     public Result page(EmpQueryParam empQueryParam) {
  23.         log.info("查询请求参数: {}", empQueryParam);
  24.         PageResult pageResult = empService.page(empQueryParam);
  25.         return Result.success(pageResult);
  26.     }
  27.     /**
  28.      * 添加员工
  29.      */
  30.     @PostMapping
  31.     public Result save(@RequestBody Emp emp){
  32.         log.info("请求参数emp: {}", emp);
  33.         empService.save(emp);
  34.         return Result.success();
  35.     }
  36. }
复制代码
S层:
  1. package com.zidiu.service;
  2. import com.zidiu.pojo.Emp;
  3. import com.zidiu.pojo.EmpQueryParam;
  4. import com.zidiu.pojo.PageResult;
  5. import java.time.LocalDate;
  6. import java.util.List;
  7. public interface EmpService {
  8.       /**
  9.      * 分页查询
  10.      */
  11.     PageResult<Emp> page(EmpQueryParam empQueryParam);
  12.     /**
  13.      * 添加员工
  14.      * @param emp
  15.      */
  16.     void save(Emp emp);
  17. }
复制代码
实现层:
  1. package com.zidiu.service.impl;
  2. import com.github.pagehelper.Page;
  3. import com.github.pagehelper.PageHelper;
  4. import com.zidiu.mapper.EmpExprMapper;
  5. import com.zidiu.mapper.EmpMapper;
  6. import com.zidiu.pojo.Emp;
  7. import com.zidiu.pojo.EmpExpr;
  8. import com.zidiu.pojo.EmpQueryParam;
  9. import com.zidiu.pojo.PageResult;
  10. import com.zidiu.service.EmpService;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.stereotype.Service;
  13. import org.springframework.util.CollectionUtils;
  14. import java.time.LocalDate;
  15. import java.time.LocalDateTime;
  16. import java.util.List;
  17. @Service
  18. public class EmpServiceImpl implements EmpService {
  19.     @Autowired
  20.     private EmpMapper empMapper;
  21.     @Autowired
  22.     private EmpExprMapper empExprMapper;
  23.     /**
  24.      * 查询员工列表
  25.      */
  26.     @Override
  27.     public PageResult page(EmpQueryParam empQueryParam) {
  28.         //1. 设置PageHelper分页参数
  29.         PageHelper.startPage(empQueryParam.getPage(), empQueryParam.getPageSize());
  30.         //2. 执行查询
  31.         List<Emp> empList = empMapper.list(empQueryParam);
  32.         //3. 封装分页结果
  33.         Page<Emp> p = (Page<Emp>)empList;
  34.         return new PageResult(p.getTotal(), p.getResult());
  35.     }
  36.     /**
  37.      * 添加员工
  38.      * @param emp
  39.      */
  40.     @Override
  41.     public void save(Emp emp) {
  42.         //1.补全基础属性
  43.         emp.setCreateTime(LocalDateTime.now());
  44.         emp.setUpdateTime(LocalDateTime.now());
  45.         //2.保存员工基本信息
  46.         empMapper.insert(emp);
  47.         //3. 保存员工的工作经历信息 - 批量
  48.         Integer empId = emp.getId();
  49.         List<EmpExpr> exprList = emp.getExprList();
  50.         if(!CollectionUtils.isEmpty(exprList)){
  51.             exprList.forEach(empExpr -> empExpr.setEmpId(empId));
  52.             empExprMapper.insertBatch(exprList);
  53.         }
  54.     }
  55. }
复制代码
M层:
  1. package com.zidiu.mapper;
  2. import com.zidiu.pojo.Emp;
  3. import com.zidiu.pojo.EmpQueryParam;
  4. import org.apache.ibatis.annotations.Insert;
  5. import org.apache.ibatis.annotations.Mapper;
  6. import org.apache.ibatis.annotations.Options;
  7. import org.apache.ibatis.annotations.Select;
  8. import java.time.LocalDate;
  9. import java.util.List;
  10. @Mapper
  11. public interface EmpMapper {
  12.     /**
  13.      * 查询所有的员工及其对应的部门名称
  14.      */
  15.     List<Emp> list(EmpQueryParam empQueryParam);
  16.     /**
  17.      * 新增员工数据
  18.      */
  19.     @Options(useGeneratedKeys = true, keyProperty = "id")
  20.     @Insert("insert into emp(username, name, gender, phone, job, salary, image, entry_date, dept_id, create_time, update_time) " +
  21.             "values (#{username},#{name},#{gender},#{phone},#{job},#{salary},#{image},#{entryDate},#{deptId},#{createTime},#{updateTime})")
  22.     void insert(Emp emp);
  23. }
复制代码
主键返回@Options(useGeneratedKeys = true, keyProperty = "id")
由于稍后,我们在保存工作经历信息的时候,需要记录是哪位员工的工作经历。 所以,保存完员工信息之后,是需要获取到员工的ID的,那这里就需要通过Mybatis中提供的主键返回功能来获取。

X层:

  1. <!--定义Mapper映射文件的约束和基本结构-->
  2. <!DOCTYPE mapper
  3.         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4.         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.zidiu.mapper.EmpExprMapper">
  6.     <insert id="insertBatch">
  7.         insert into emp_expr (emp_id, begin, end, company, job) values
  8.         <foreach collection="exprList" item="expr" separator=",">
  9.             (#{expr.empId}, #{expr.begin}, #{expr.end}, #{expr.company}, #{expr.job})
  10.         </foreach>
  11.     </insert>
  12.     <select id="list" resultType="com.zidiu.pojo.Emp">
  13.         select e.*, d.name deptName from emp as e left join dept as d on e.dept_id = d.id
  14.         <where>
  15.             <if test="name != null and name != ''">
  16.                 e.name like concat('%',#{name},'%')
  17.             </if>
  18.             <if test="gender != null">
  19.                 and e.gender = #{gender}
  20.             </if>
  21.             <if test="begin != null and end != null">
  22.                 and e.entry_date between #{begin} and #{end}
  23.             </if>
  24.         </where>
  25.     </select>
  26. </mapper>
复制代码
X层:
  1. <!--定义Mapper映射文件的约束和基本结构-->
  2. <!DOCTYPE mapper
  3.         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4.         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.zidiu.mapper.EmpMapper">
  6.     <select id="list" resultType="com.zidiu.pojo.Emp">
  7.         select e.*, d.name deptName from emp as e left join dept as d on e.dept_id = d.id order by e.id desc
  8.         <where>
  9.             <if test="name != null and name != ''">
  10.                 e.name like concat('%',#{name},'%')
  11.             </if>
  12.             <if test="gender != null">
  13.                 and e.gender = #{gender}
  14.             </if>
  15.             <if test="begin != null and end != null">
  16.                 and e.entry_date between #{begin} and #{end}
  17.             </if>
  18.         </where>
  19.     </select>
  20. </mapper>
复制代码

JavaWeb(SpringBoot3+vue3)开发+教学管理系统项目实战之条件分页查询

SpringBoot3+Vue3开发综合实战项目:
JavaWeb(SpringBoot3+vue3)开发+教学管理系统项目实战
网站建设,公众号小程序开发,系统定制,软件App开发,技术维护【联系我们】手机/微信:17817817816 QQ:515138

QQ|Archiver|自丢网 ( 粤ICP备2024252464号-1 )

GMT+8, 2025-12-1 07:02

专注于网站建设,公众号小程序制作,商城小程序,系统定制,软件App开发

【联系我们】手机/微信:17817817816 QQ:515138

快速回复 返回顶部 返回列表