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

SpringBoot3+vue3开发+教学管理系统项目实战之查询回显更新修改员工信息

[复制链接]

73

主题

3

精华

77

金币

技术维护QQ:515138

积分
165
发表于 5 天前 | 显示全部楼层 |阅读模式
JAVAWEB+SpringBoot3+vue3开发+教学管理系统项目实战之查询回显更新修改员工信息
1.png
游客,如果您要查看本帖隐藏内容请回复

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. import java.util.Arrays;
  13. import java.util.List;
  14. @RequestMapping("/emps")
  15. @Slf4j
  16. @RestController
  17. public class EmpController {
  18.     @Autowired
  19.     private EmpService empService;
  20.     /**
  21.      * 查询员工列表带分页
  22.      */
  23.     @GetMapping
  24.     public Result page(EmpQueryParam empQueryParam) {
  25.         log.info("查询请求参数: {}", empQueryParam);
  26.         PageResult pageResult = empService.page(empQueryParam);
  27.         return Result.success(pageResult);
  28.     }
  29.     /**
  30.      * 添加员工
  31.      */
  32.     @PostMapping
  33.     public Result save(@RequestBody Emp emp){
  34.         log.info("请求参数emp: {}", emp);
  35.         empService.save(emp);
  36.         return Result.success();
  37.     }
  38.     /**
  39.      * 批量删除员工
  40.      * 在Controller方法中通过数组来接收
  41.      */
  42. //    @DeleteMapping
  43. //    public Result delete(Integer[] ids){
  44. //        log.info("批量删除部门: ids={} ", Arrays.asList(ids));
  45. //        return Result.success();
  46. //    }
  47.     /**
  48.      * 批量删除员工
  49.      * 在Controller方法中通过集合来接收,推荐
  50.      */
  51.     @DeleteMapping
  52.     public Result delete(@RequestParam List<Integer> ids){
  53.         log.info("批量删除部门: ids={} ", ids);
  54.         empService.deleteByIds(ids);
  55.         return Result.success();
  56.     }
  57.     /**
  58.      * 查询回显
  59.      */
  60.     @GetMapping("/{id}")
  61.     public Result getInfo(@PathVariable Integer id){
  62.         log.info("根据id查询员工的详细信息");
  63.         Emp emp  = empService.getInfo(id);
  64.         return Result.success(emp);
  65.     }
  66.     /**
  67.      * 更新员工信息
  68.      */
  69.     @PutMapping
  70.     public Result update(@RequestBody Emp emp){
  71.         log.info("修改员工信息, {}", emp);
  72.         empService.update(emp);
  73.         return Result.success();
  74.     }
  75. }
复制代码
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.     /**
  18.      * 批量删除员工
  19.      */
  20.     void deleteByIds(List<Integer> ids);
  21.     /**
  22.      * 根据ID查询员工的详细信息
  23.      */
  24.     Emp getInfo(Integer id);
  25.     /**
  26.      * 修改员工信息
  27.      */
  28.     void update(Emp emp);
  29. }
复制代码
实现层:
  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.transaction.annotation.Transactional;
  14. import org.springframework.util.CollectionUtils;
  15. import java.time.LocalDate;
  16. import java.time.LocalDateTime;
  17. import java.util.Arrays;
  18. import java.util.List;
  19. @Service
  20. public class EmpServiceImpl implements EmpService {
  21.     @Autowired
  22.     private EmpMapper empMapper;
  23.     @Autowired
  24.     private EmpExprMapper empExprMapper;
  25.     /**
  26.      * 查询员工列表
  27.      */
  28.     @Override
  29.     public PageResult page(EmpQueryParam empQueryParam) {
  30.         //1. 设置PageHelper分页参数
  31.         PageHelper.startPage(empQueryParam.getPage(), empQueryParam.getPageSize());
  32.         //2. 执行查询
  33.         List<Emp> empList = empMapper.list(empQueryParam);
  34.         //3. 封装分页结果
  35.         Page<Emp> p = (Page<Emp>)empList;
  36.         return new PageResult(p.getTotal(), p.getResult());
  37.     }
  38.     /**
  39.      * 添加员工
  40.      * @param emp
  41.      */
  42.     @Transactional
  43.     @Override
  44.     public void save(Emp emp) {
  45.         //1.补全基础属性
  46.         emp.setCreateTime(LocalDateTime.now());
  47.         emp.setUpdateTime(LocalDateTime.now());
  48.         //2.保存员工基本信息
  49.         empMapper.insert(emp);
复制代码
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.     /**
  24.      * 批量删除员工
  25.      */
  26.     void deleteByIds(List<Integer> ids);
  27.     /**
  28.      * 根据ID查询员工信息
  29.      */
  30.     Emp getById(Integer id);
  31.     /**
  32.      * 修改员工信息
  33.      */
  34.     void updateById(Emp emp);
  35. }
复制代码
XML层:
  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.     <!--根据ID更新员工信息-->
  7.     <update id="updateById">
  8.         update emp
  9.         <set>
  10.             <if test="username != null and username != ''">username = #{username},</if>
  11.             <if test="password != null and password != ''">password = #{password},</if>
  12.             <if test="name != null and name != ''">name = #{name},</if>
  13.             <if test="gender != null">gender = #{gender},</if>
  14.             <if test="phone != null and phone != ''">phone = #{phone},</if>
  15.             <if test="job != null">job = #{job},</if>
  16.             <if test="salary != null">salary = #{salary},</if>
  17.             <if test="image != null and image != ''">image = #{image},</if>
  18.             <if test="entryDate != null">entry_date = #{entryDate},</if>
  19.             <if test="deptId != null">dept_id = #{deptId},</if>
  20.             <if test="updateTime != null">update_time = #{updateTime},</if>
  21.         </set>
  22.         where id = #{id}
  23.     </update>
  24.     <!--批量删除员工信息-->
  25.     <delete id="deleteByIds">
  26.         delete from emp where id in
  27.         <foreach collection="ids" item="id" open="(" close=")" separator=",">
  28.             #{id}
  29.         </foreach>
  30.     </delete>
  31.     <select id="list" resultType="com.zidiu.pojo.Emp">
  32.         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
  33.         <where>
  34.             <if test="name != null and name != ''">
  35.                 e.name like concat('%',#{name},'%')
  36.             </if>
  37.             <if test="gender != null">
  38.                 and e.gender = #{gender}
  39.             </if>
  40.             <if test="begin != null and end != null">
  41.                 and e.entry_date between #{begin} and #{end}
  42.             </if>
  43.         </where>
  44.     </select>
  45.     <!--自定义结果集ResultMap-->
  46.     <resultMap id="empResultMap" type="com.zidiu.pojo.Emp">
  47.         <id column="id" property="id" />
  48.         <result column="username" property="username" />
  49.         <result column="password" property="password" />
  50.         <result column="name" property="name" />
  51.         <result column="gender" property="gender" />
  52.         <result column="phone" property="phone" />
  53.         <result column="job" property="job" />
  54.         <result column="salary" property="salary" />
  55.         <result column="image" property="image" />
  56.         <result column="entry_date" property="entryDate" />
  57.         <result column="dept_id" property="deptId" />
  58.         <result column="create_time" property="createTime" />
  59.         <result column="update_time" property="updateTime" />
  60.         <!--封装exprList-->
  61.         <collection property="exprList" ofType="com.zidiu.pojo.EmpExpr">
  62.             <id column="ee_id" property="id"/>
  63.             <result column="ee_company" property="company"/>
  64.             <result column="ee_job" property="job"/>
  65.             <result column="ee_begin" property="begin"/>
  66.             <result column="ee_end" property="end"/>
  67.             <result column="ee_empid" property="empId"/>
  68.         </collection>
  69.     </resultMap>
  70.     <!--根据ID查询员工的详细信息-->
  71.     <select id="getById" resultMap="empResultMap">
  72.         select e.*,
  73.                ee.id ee_id,
  74.                ee.emp_id ee_empid,
  75.                ee.begin ee_begin,
  76.                ee.end ee_end,
  77.                ee.company ee_company,
  78.                ee.job ee_job
  79.         from emp e left join emp_expr ee on e.id = ee.emp_id
  80.         where e.id = #{id}
  81.     </select>
  82. </mapper>
复制代码
<set>:替换set关键字,去除字段之后多余的逗号(,)
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

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