广告
返回顶部
首页 > 资讯 > 精选 >Java员工信息管理功能怎么实现
  • 632
分享到

Java员工信息管理功能怎么实现

2023-06-30 13:06:09 632人浏览 独家记忆
摘要

本篇内容介绍了“Java员工信息管理功能怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一. 员工信息分页查询1. 需求分析当系统中的

本篇内容介绍了“Java员工信息管理功能怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一. 员工信息分页查询

1. 需求分析

当系统中的用户越来越多页面展示不完整,我们需要通过实现分页的方式去展示员工的信息:

Java员工信息管理功能怎么实现

2. 代码开发

在开发代码之前,需要理清楚程序的执行过程与业务逻辑:

  • 页面发送ajax请求,将分页查询参数(page,pagesize,name)提交到服务端服务端

  • Controller接收页面提交的数据并调用查询的数据

  • Service调用Mapper操作数据库,查询分页数据

  • Controller将查询到的分页数据响应到页面

  • 页面接收到分页的数据并通过ElementUI的Table组件展示到页面上

Java员工信息管理功能怎么实现

其实页面的分页参数是通过JSON的格式传值后端,但是为何是图中是以这种问号的方式拼接的呢,原因是前端将请求进行一个拦截后重新拼接后的结果(前端代码不再叙述)。

配置分页插件

package com.itheima.reggie.config;import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configurationpublic class MybatisPlusConfig {    @Bean    public MybatisPlusInterceptor mybatisPlusInterceptor(){        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();        mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());        return mybatisPlusInterceptor;    }}

Controller层

       @GetMapping("/page")    public R<Page> page(int page, int pageSize, String name) {        log.info("page={},pageSize={},name={}", page, pageSize, name);        // 构造分页构造器        Page pageInfo = new Page(page, pageSize);        // 构造条件        LambdaQueryWrapper<Employee> queryWrapper = new LambdaQueryWrapper();        queryWrapper.like(StringUtils.isNotEmpty(name), Employee::getName, name).or()                .like(StringUtils.isNotEmpty(name),Employee::getUsername,name);        // 添加排序        queryWrapper.orderByDesc(Employee::getUpdateTime);        // 执行查询        employeeService.page(pageInfo, queryWrapper);        return R.success(pageInfo);    }

二. 启用或禁用员工状态

1 需求分析

员工管理列表页,可以对某个员工状态进行启用或者禁用的操作。账号禁用的与员工不可登录系统,启用过后可以正常登录。这一操作只允许管理员进行操作。

2 代码开发

前端核心代码

页面中是如何做到只有管理员admin可以看到禁用按钮的,其实在前端只需获取到登录的账号,然后进行一个用户名判断即可:

页面初始化的时候就获取登录账号:

created() {          this.init()          this.user = jsON.parse(localStorage.getItem('userInfo')).username        },

显示账号状态的那一列:

<el-table-column label="账号状态">    <template slot-scope="scope">        {{ String(scope.row.status) === '0' ? '已禁用' : '正常' }}    </template></el-table-column>

向后端传递JSON的数据,将需要禁用员工的账号的ID与状态传值后端,前端主要代码:

//状态修改statusHandle (row) {this.id = row.idthis.status = row.statusthis.$confirm('确认调整该账号的状态?', '提示', {'confirmButtonText': '确定','cancelButtonText': '取消','type': 'warning'}).then(() => {enableOrDisableEmployee({ 'id': this.id, 'status': !this.status ? 1 : 0 }).then(res => {console.log('enableOrDisableEmployee',res)if (String(res.code) === '1') {this.$message.success('账号状态更改成功!')this.handleQuery()}}).catch(err => {this.$message.error('请求出错了:' + err)})})},
后端核心代码
@PostMappingpublic R<String> update(httpservletRequest request, @RequestBody Employee employee){// 获取员工IDLong empId = (Long) request.getSession().getAttribute("employee");employee.setUpdateTime(LocalDateTime.now());employee.setUpdateUser(empId);employeeService.updateById(employee);return R.success("员工信息修改成功");}

其实测试发现这段代码是不会被修改成功的,因为涉及一个JS的精度问题,JS识别Long类型只精确到16位,而ID是雪花算法生成的ID有19位,导致ID精度丢失。

代码修复

如何解决上述问题,将页面的Long类型转为字符串。具体步骤:

  • 使用JacksonObjectMapper对JSON数据进行转换

  • WEBConfig配置类中扩展Sringmvc的消息转换器,镜像Java对象到JSON数据的转换

JacksonObjectMapper:

package com.itheima.reggie.common;import com.fasterxml.jackson.databind.DeserializationFeature;import com.fasterxml.jackson.databind.ObjectMapper;import com.fasterxml.jackson.databind.module.SimpleModule;import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer;import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer;import org.springframework.stereotype.Component;import java.math.BigInteger;import java.time.LocalDate;import java.time.LocalDateTime;import java.time.LocalTime;import java.time.fORMat.DateTimeFormatter;import static com.fasterxml.jackson.databind.DeserializationFeature.FaiL_ON_UNKNOWN_PROPERTIES;@Componentpublic class JacksonObjectMapper extends ObjectMapper {    public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd";    public static final String DEFAULT_DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";    public static final String DEFAULT_TIME_FORMAT = "HH:mm:ss";    public JacksonObjectMapper() {         super();        //收到未知属性时不报异常        this.configure(FAIL_ON_UNKNOWN_PROPERTIES, false);        //反序列化时,属性不存在的兼容处理        this.getDeserializationConfig().withoutFeatures(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);        SimpleModule simpleModule = new SimpleModule()                .aDDDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT)))                .addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT)))                .addDeserializer(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT)))                .addSerializer(BigInteger.class, ToStringSerializer.instance)                .addSerializer(Long.class, ToStringSerializer.instance)                .addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT)))                .addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT)))                .addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT)));        //注册功能模块 例如,可以添加自定义序列化器和反序列化器        this.reGISterModule(simpleModule);    }}

WebMVCConfig:

    @Override    protected void extendMessageConverters(List<HttpMessageConverter<?>> converters) {        log.info("扩展消息转换器");        // 创建消息转换器        MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter();        // 设置对象转换器,底层使用Jackson将Java对象转为json        messageConverter.setObjectMapper(new JacksonObjectMapper());        // 将上面的消息转换器对象追加到MVC框架的转换器集合中        converters.add(0,messageConverter);    }

修复之后员工状态可以正常修改,ID也改变为字符串格式了:

Java员工信息管理功能怎么实现

“Java员工信息管理功能怎么实现”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Java员工信息管理功能怎么实现

本文链接: https://www.lsjlt.com/news/329339.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java员工信息管理功能怎么实现
    本篇内容介绍了“Java员工信息管理功能怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一. 员工信息分页查询1. 需求分析当系统中的...
    99+
    2023-06-30
  • Java实现员工信息管理系统
    在Java SE中,对IO流与集合的操作在应用中比较重要。接下来,我以一个小型项目的形式,演示IO流、集合等知识点在实践中的运用。 该项目名称为“员工信息管理系统&rdq...
    99+
    2022-11-13
  • Python实现员工信息管理系统
    本文实例为大家分享了Python实现员工信息管理系统的具体代码,供大家参考,具体内容如下 1.职员信息管理系统 要求: 1、依次从键盘录入每位员工的信息,包括姓名、员工id、身份证号...
    99+
    2022-11-11
  • 怎么使用Python实现员工信息管理系统
    本文小编为大家详细介绍“怎么使用Python实现员工信息管理系统”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用Python实现员工信息管理系统”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.职员信息管...
    99+
    2023-06-30
  • java实现人员信息管理系统
    本文实例为大家分享了java实现人员信息管理系统的具体代码,供大家参考,具体内容如下 实现增删改查. java入门的练手小程序 1.Person类 package p1;   pu...
    99+
    2022-11-13
  • jquery实现员工信息添加与删除功能
    本文实例为大家分享了jquery实现员工信息添加与删除功能的具体代码,供大家参考,具体内容如下 员工表格添加用了jquery事件 主要按钮绑定事件 <!DOCTYPE h...
    99+
    2022-11-12
  • php怎么实现人员信息搜索的功能
    本文操作环境:Windows7系统,PHP7.1版,Dell G3电脑。php怎么实现人员信息搜索的功能?PHP+MySQL实现模糊查询员工信息功能示例具体如下:一、代码注意两点:用Notepad+编辑时,格式选择:【编码字符集】->...
    99+
    2015-04-24
    PHP MySQL
  • java实现人员信息管理系统的代码怎么写
    今天小编给大家分享一下java实现人员信息管理系统的代码怎么写的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。实现增删改查.j...
    99+
    2023-06-29
  • Java实现部门员工管理
    本文实例为大家分享了Java实现部门员工管理的具体代码,供大家参考,具体内容如下 项目作业:部门员工管理 题目要求: 某公司要开发内部的 “办公信息化管理系统&rdquo...
    99+
    2022-11-13
  • java实现员工工资管理系统
    本文实例为大家分享了java实现员工工资管理系统的具体代码,供大家参考,具体内容如下 一、题目要求 设计员工工资管理系统,实现以下功能: (1)输入5名员工姓名、工号、月工资;(2)...
    99+
    2022-11-13
  • MySQL 实现点餐系统的员工管理功能
    在点餐系统中,员工管理功能是非常重要的一个部分,因为它能够确保员工的工作顺利进行,保证订单的正确处理。MySQL是一种常用的数据库管理系统,可以实现员工管理功能。下面将通过具体的代码示例介绍MySQL如何实现点餐系统的员工管理功能。创建数据...
    99+
    2023-11-01
    MySQL 员工管理 点餐系统
  • python实现会员信息管理系统(List)
      题目要求 1.后台管理员只有一个用户:admin, 密码: admin2.当管理员登陆成功后,可以管理前台会员信息。3.会员信息管理包括:   添加...
    99+
    2022-11-13
  • 怎么用Java实现简单员工管理系统
    这篇文章主要讲解了“怎么用Java实现简单员工管理系统”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Java实现简单员工管理系统”吧!代码如下:import java.uti...
    99+
    2023-06-29
  • 如何通过PHP实现员工休假管理功能?
    随着企业规模的扩大和员工数量的增加,良好的员工休假管理变得越来越重要。为了更好地管理员工的休假事宜,让员工能够方便地申请假期并让管理人员能够及时审批、记录和跟踪休假情况,我们可以使用PHP来实现员工休假管理功能。在开始之前,我们首先需要搭建...
    99+
    2023-10-21
    PHP实现 员工管理 休假管理
  • Java精品项目瑞吉外卖之员工信息管理篇
    目录一. 员工信息分页查询1. 需求分析2. 代码开发二. 启用或禁用员工状态1 需求分析2 代码开发前端核心代码后端核心代码代码修复上一篇: 瑞吉外卖项目:新增员工 一. 员工信息...
    99+
    2022-11-13
  • python如何实现会员信息管理系统
    本篇内容介绍了“python如何实现会员信息管理系统”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!题目要求后台管理员只有一个用户:admin...
    99+
    2023-06-29
  • C++实现高校人员信息管理系统
    高校人员信息管理系统设计,供大家参考,具体内容如下 一、问题描述及功能要求 1、问题描述 某高校有四类员工:教师、实验员、行政人员,教师兼行政人员;共有的信息包括:编号、姓名、性别、...
    99+
    2022-11-12
  • Java怎么实现药店信息管理系统
    这篇“Java怎么实现药店信息管理系统”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java怎么实现药店信息管理系统”文章吧...
    99+
    2023-06-29
  • Java课程信息管理系统怎么实现
    这篇文章主要讲解了“Java课程信息管理系统怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java课程信息管理系统怎么实现”吧!一、项目运行环境配置:Jdk1.8 + Tomcat8...
    99+
    2023-06-29
  • php如何实现人员信息搜索的功能
    本篇内容介绍了“php如何实现人员信息搜索的功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php实现人员信息搜索的功能的方法:1、创建c...
    99+
    2023-06-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作