首页 > 其他分享 >31.SpringBoot项目_员工管理系统总结 下

31.SpringBoot项目_员工管理系统总结 下

时间:2024-04-16 21:12:00浏览次数:28  
标签:SpringBoot 管理系统 31 员工 public emp employee import id

本来想好好整理最后结束的
奈何又接了个项目 一个挺大的项目 更能运用
所以时间不够 就简单整理 算烂了个尾吧

首先:
1.人工AI取代程序员 对我来说是不对的 确实是骗外行的
但其确实强大 带来的便利 但也只有程序员才能完美部署并运用它
2.有多少人像我一样不喜欢wordexcelppt 喜欢用html或者记事本或者纸张去写
3.之前写的javaweb图书管理项目和springboot人员管理项目对比 天差地别
4.关于模板美化 一千二百多行代码 瞬间美观

主要显示页面 可以看到我抽出了公共部分
这个掏钱买的好看模板 不过改得我也够呛
<!DOCTYPE html>
<!--[if lt IE 7 ]>
<html class="ie ie6" lang="en"> <![endif]-->
<!--[if IE 7 ]>
<html class="ie ie7" lang="en"> <![endif]-->
<!--[if IE 8 ]>
<html class="ie ie8" lang="en"> <![endif]-->
<!--[if (gte IE 9)|!(IE)]><!-->
<html lang="en" xmlns:th="http://www.thymeleaf.org"> <!--<![endif]-->

<head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <title> | 吉芳芳 | </title>


    <!-- Styles -->
    <link type="text/css" rel="stylesheet" th:href="@{/asserts/css/base.css}"/>
    <link type="text/css" rel="stylesheet" th:href="@{/asserts/css/animate.css}"/>
    <link type="text/css" rel="stylesheet" th:href="@{/asserts/css/magnific-popup.css}"/>
    <link type="text/css" rel="stylesheet" th:href="@{/asserts/css/owl-carousel.css}"/>
    <link type="text/css" rel="stylesheet" th:href="@{/asserts/css/style.css}"/>
    <!-- /Styles -->

</head>

<body>


<!-- Wrapper All -->
<div class="rewall_fn_wrapper_all" data-nav-skin="transdark">

    <!-- Wrapper -->
    <div class="rewall_fn_wrapper">



        <!-- Color Scheme -->
        <div th:replace="~{commons/bar::color}"></div>
        <!-- /Color Scheme -->


        <!-- Left Sidebar -->
        <!-- You can set up minimum and maximum width for sidebar (in px). Minimum width is 350 -->
        <div th:replace="~{commons/bar::left}"></div>
        <!-- /Left Sidebar -->


        <!-- Main Content -->
        <div class="rewall_fn_content">
            <div class="fn__page">


                <!-- About Section -->
                <div th:replace="~{commons/bar::about}"></div>
                <!-- /About Section -->




                <section class="customer" id="employee">
                    <h3>
                    <a th:href="@{/emps}">员工管理</a>
                    </h3>
                    <div class="container-fluid">
                        <div class="row">

                            <main role="main" class="col-md-9 ml-sm-auto col-lg-10 pt-3 px-4">

                                <div class="table-responsive">
                                    <table class="table table-striped table-sm">
                                        <thead>
                                        <tr>
                                            <th>id</th>
                                            <th>lastName</th>
                                            <th>email</th>
                                            <th>gender</th>
                                            <th>department</th>
                                            <th>birth</th>
                                            <!--我们还可以在显示的时候带一些操作按钮-->
                                            <th>操作</th>
                                        </tr>
                                        </thead>
                                        <tbody>
                                        <tr th:each="emp:${emps}">
                                            <td th:text="${emp.id}"></td>
                                            <td>[[${emp.lastName}]]</td>
                                            <td th:text="${emp.email}"></td>
                                            <td th:text="${emp.gender==0?'女':'男'}"></td>
                                            <td th:text="${emp.EDepartment.departmentName}"></td>
                                            <!--<td th:text="${emp.birth}"></td>-->
                                            <!--使用时间格式化工具-->
                                            <td th:text="${#dates.format(emp.birth,'yyyy-MM-dd HH:mm')}"></td>

                                            <!--操作-->
                                            <td>
                                                <a  th:href="@{/emp/}+${emp.id}">编辑</a>
                                                <a  th:href="@{/delEmp/}+${emp.id}">删除</a>
                                            </td>
                                        </tr>
                                        </tbody>
                                    </table>
                                    <!--添加员工按钮-->
                                    <h4>
                                        <a  th:href="@{/emp}">添加员工</a>
                                    </h4>
                                </div>
                            </main>
                        </div>
                    </div>
                </section>







                <!-- Customer Section -->
                <div th:replace="~{commons/bar::customer}"></div>
                <!-- /Customer Section -->





                <!-- Contact Section -->
                <div th:replace="~{commons/bar::contact}"></div>
                <!-- /Contact Section -->


            </div>
        </div>
        <!-- Main Content -->

    </div>
    <!-- /Wrapper -->

</div>
<!-- /Wrapper All -->


<!-- Scripts -->
<script type="text/javascript" th:src="@{/asserts/js/jquery.js}"></script>
<script type="text/javascript" th:src="@{/asserts/js/wow.min.js}"></script>
<script type="text/javascript" th:src="@{/asserts/js/magnific-popup.js}"></script>
<script type="text/javascript" th:src="@{/asserts/js/onepage.js}"></script>
<script type="text/javascript" th:src="@{/asserts/js/owl-carousel.js}"></script>
<script type="text/javascript" th:src="@{/asserts/js/isotope.js}"></script>
<script type="text/javascript" th:src="@{/asserts/js/parallax.js}"></script>
<script type="text/javascript" th:src="@{/asserts/js/waypoints.js}"></script>
<script type="text/javascript" th:src="@{/asserts/js/init.js}"></script>

</body>
</html>

点击增加和更新就会跳转到add 和 upgrade页面

只展示重要部分
<main role="main" class="col-md-9 ml-sm-auto col-lg-10 pt-3 px-4">
												<form th:action="@{/emp}" method="post">
													<div class="form-group">
														<label>LastName</label>
														<input type="text" class="form-control" name="lastName" placeholder="名字">
													</div>
													<div class="form-group">
														<label>Email</label>
														<input type="email" class="form-control" name="email" placeholder="邮箱">
													</div>
													<div class="form-group">
														<label>Gender</label><br/>
														<div class="form-check form-check-inline">
															<input class="form-check-input" type="radio" name="gender"  value="1">
															<label class="form-check-label">男</label>
														</div>
														<div class="form-check form-check-inline">
															<input class="form-check-input" type="radio" name="gender"  value="0">
															<label class="form-check-label">女</label>
														</div>
													</div>
													<div class="form-group">
														<label>department</label>
														<!--提交的是部门的ID-->
														<select class="form-control" name="department">
															<option th:each="dept:${departments}" th:text="${dept.departmentName}" th:value="${dept.id}">1</option>
														</select>
													</div>
													<div class="form-group">
														<label>Birth</label>
														<input type="text" class="form-control" name="birth" placeholder="生日">
													</div>
													<button type="submit" class="btn btn-primary">添加</button>
												</form>
											</main>
<main role="main" class="col-md-9 ml-sm-auto col-lg-10 pt-3 px-4">
												<form th:action="@{/updateEmp}" method="post">
													<input name="id" type="hidden" class="form-control" th:value="${emp.id}">
													<div class="form-group">
														<label>LastName</label>
														<input name="lastName" type="text" class="form-control" th:value="${emp.lastName}">
													</div>
													<div class="form-group">
														<label>Email</label>
														<input name="email" type="email" class="form-control" th:value="${emp.email}">
													</div>
													<div class="form-group">
														<label>Gender</label><br/>
														<div class="form-check form-check-inline">
															<input class="form-check-input" type="radio" name="gender" value="1"
																   th:checked="${emp.gender==1}">
															<label class="form-check-label">男</label>
														</div>
														<div class="form-check form-check-inline">
															<input class="form-check-input" type="radio" name="gender" value="0"
																   th:checked="${emp.gender==0}">
															<label class="form-check-label">女</label>
														</div>
													</div>
													<div class="form-group">
														<label>department</label>
														<!--提交的是部门的ID-->
														<select class="form-control" name="department">
															<option th:selected="${dept.id == emp.department}" th:each="dept:${departments}"
																	th:text="${dept.departmentName}" th:value="${dept.id}">1
															</option>
														</select>
													</div>
													<div class="form-group">
														<label>Birth</label>
														<input name="birth" type="text" class="form-control" th:value="${#dates.format(emp.birth,'yyyy-MM-dd HH:mm')}">
													</div>
													<button type="submit" class="btn btn-primary">修改</button>
												</form>
											</main>

重要的controller层:
注意post get 方法

package com.fang.controller;

import com.fang.mapper.DepartmentMapper;
import com.fang.mapper.EmployeeMapper;
import com.fang.pojo.Department;
import com.fang.pojo.Employee;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;

import java.util.List;

@Controller
public class EmployeeController {

    @Autowired
    EmployeeMapper employeeMapper;

    @Autowired
    DepartmentMapper departmentMapper;

    //查询所有员工,返回列表页面
    @GetMapping("/emps")
    public String list(Model model){
        List<Employee> employees = employeeMapper.getEmployees();
        //将结果放在请求中
        model.addAttribute("emps",employees);
        return "dashboard";
    }

    //to员工添加页面
    @GetMapping("/emp")
    public String toAddPage(Model model){
        //查出所有的部门,提供选择
        List<Department> departments = departmentMapper.getDepartments();
        model.addAttribute("departments",departments);
        return "emp/add";
    }

    //员工添加功能
    //接收前端传递的参数,自动封装成为对象[要求前端传递的参数名,和属性名一致]
    @PostMapping("/emp")
    public String addEmp(Employee employee){
        System.out.println(employee);
        employeeMapper.save(employee); //保存员工信息
        //回到员工列表页面,可以使用redirect或者forward
        return "redirect:/emps";
    }

    //to员工修改页面
    @GetMapping("/emp/{id}")
    public String toUpdateEmp(@PathVariable("id") Integer id,Model model){
        //根据id查出来员工
        Employee employee = employeeMapper.get(id);
        System.out.println(employee);
        //将员工信息返回页面
        model.addAttribute("emp",employee);
        //查出所有的部门,提供修改选择
        List<Department> departments = departmentMapper.getDepartments();
        model.addAttribute("departments",departments);

        return "emp/update";
    }


    @PostMapping("/updateEmp")
    public String updateEmp(Employee employee){
        employeeMapper.update(employee);
        //回到员工列表页面
        return "redirect:/emps";
    }


    @GetMapping("/delEmp/{id}")
    public String delEmp(@PathVariable("id") Integer id){
        employeeMapper.delete(id);
        return "redirect:/emps";
    }

}

哈哈真的懒得再整理了
效果如我的上篇
接下来要好好搞搞一个springboot和vue项目了 下次再更
烂尾拜拜

标签:SpringBoot,管理系统,31,员工,public,emp,employee,import,id
From: https://www.cnblogs.com/gaodiyuanjin/p/18139200

相关文章

  • springboot简单正确的使用构造函数注入
    一个一个写构造函数太麻烦了,而且代码会显得非常多,这里我们可以采用lombok快捷注入但是我们并不是所有的成员变量都需要进行注入,所以使用@RequiredArgsConstrucotr需要构造函数的部分添加上final关键字"Alwaysuseconstructorbaseddependencyinjectioninyourbeans.Alwa......
  • SpringBoot 事务失效常见的原因
    low一点的原因:1.非public方法2.异常被处理了(trycatch)3.bean没被Spring管理,比如没加Component注解4.数据库不支持(比如MyISAM) 高大上一点的原因:5.内部方法调用,可以注入本实例的代理类,通过代理类来调用6.抛出的是非RuntimeException,可以这么解决(@Transactional(rollb......
  • 初次使用SpringBoot3遇到的一些问题
    打开网址https://start.spring.io/  选择版本依赖等信息 本机环境原先装了个jdk8,由于SpringBoot3最低支持jdk17,所以本机环境上又装了个jdk17   https://www.oracle.com/java/technologies/downloads/#java17出于怀旧,jdk8还保留着,并且环境变量还是jdk8,只是在idea里吧......
  • 30.swagger springboot中简单整理
    类似postman接口在线测试API接口哈哈我也不太懂接口还没前后端整合过呢也就是注释你的各种接口吧可有可无先说依赖问题这个是swagger2的依赖当然出现问题了已经更新到了swagger3了参考:https://cloud.tencent.com/developer/article/1936862https://mvnrepos......
  • SpringBoot+SpringSecurity6+Jwt最小化代码
    SpringBoot+SpringSecurity6+Jwt最小化代码[toc]零、参考资料https://blog.csdn.net/m0_71273766/article/details/132942056一、快速开始1.1、引入依赖<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0&quo......
  • C:\Windows\servicing\Packages 是一个存储 Windows 更新程序包的目录。Windows 操
    C:\Windows\servicing目录包含了与Windows维护和更新相关的文件和子目录。让我们逐个解释一下每个子目录和文件的作用:CbsApi.dll和CbsMsg.dll:这两个DLL文件是Windows组件基础服务(CBS)的一部分。CBS是Windows中用于安装、卸载、维护和更新组件的服务。这些D......
  • RocketMQ集成SpringBoot
    踩了3天的坑,发现使用rocketMQTemplte消费者一直注册不上,发现是springboot版本问题1.版本选择经过不严格测试发现rocketmq-spring-boot-starter2.3.0支持springboot3以上rocketmq-spring-boot-starter2.2.x只能使用3以下,高版本会导致消费者注册不上的问题2.application.y......
  • 80、SpringBoot3 SpringSecurity Mybatisplus最新版 整合 实现登入权限控制
    1、导入pom依赖<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apac......
  • SpringBoot+MybatisPlus 增删改查学习第三章 (C#转JAVA)
    packagecom.example.demo;importcom.baomidou.mybatisplus.core.conditions.query.QueryWrapper;importcom.example.demo.entity.Person;importcom.example.demo.mapper.PersonMapper;importcom.example.demo.service.PersonService;importorg.junit.jupiter.api.Test;i......
  • 面试官:一个 SpringBoot 项目能处理多少请求?(小心有坑)
    面试官:一个SpringBoot项目能处理多少请求?(小心有坑) 你好呀,我是歪歪。这篇文章带大家盘一个读者遇到的面试题哈。根据读者转述,面试官的原问题就是:一个SpringBoot项目能同时处理多少请求?不知道你听到这个问题之后的第一反应是什么。我大概知道他要问的是哪个方向,但......