1.bean层:定义Worker类型

package com.manage.bean;import java.io.Serializable;public class Worker implements Serializable{
//  员工编号 员工姓名 员工性别 工资 入职时间private String id, name, sex, time;private double salary;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getTime() {return time;}public void setTime(String time) {this.time = time;}public double getSalary() {return salary;}public void setSalary(double salary) {this.salary = salary;}public Worker(String id, String name, String sex, double salary, String time) {super();this.id = id;this.name = name;this.sex = sex;this.time = time;this.salary = salary;}public Worker() {super();}}

2.DataBase层:从文件中存储调用数据,初始化数据

package com.manage.data;import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;import com.manage.bean.Worker;public class DataBase implements Serializable{List<Worker> list = new ArrayList<>();File file = new File("src/worker.txt");public List<Worker> getWorker(){ObjectInputStream ois = null;if(file.exists()) {try {ois = new ObjectInputStream(new FileInputStream(file));} catch (Exception e) {e.printStackTrace();}finally {try {List<Worker> list = (List<Worker>) ois.readObject();try {return list;} catch (Exception e) {e.printStackTrace();Init();}finally {if(ois!=null) {ois.close();                         }}                  } catch (Exception e1) {e1.printStackTrace();Init();} }         } else {try {file.createNewFile();} catch (IOException e) {e.printStackTrace();}Init();}return list;        }
//  有如下数据:
//  员工编号 员工姓名 员工性别 工资 入职时间
//  10011 李云龙 男 18000 2022-10-01
//  10012 李真棒 女 16000 2022-08-22
//  10013 夏芒 男 9000 2022-10-11
//  10014 刘码 女 8000 2022-09-12private void Init() {Worker w1 = new Worker("10011", "李云龙", "男", 18000, "2022-10-01");Worker w2 = new Worker("10012", "李真棒", "女", 16000, "2022-08-22");Worker w3 = new Worker("10013", "夏芒", "男", 9000, "2022-10-11");Worker w4 = new Worker("10014", "刘码", "女", 8000, "2022-09-12");list.add(w1);list.add(w2);list.add(w3);list.add(w4);WriteData(list);}/*** 将list重写入文件*/public void WriteData(List<Worker> list1){ObjectOutputStream oos = null;try {oos = new ObjectOutputStream(new FileOutputStream(file));oos.writeObject(list1);} catch (Exception e) {e.printStackTrace();}finally {if(oos!=null) {try {oos.close();} catch (IOException e) {e.printStackTrace();}              }}}
}

3.Dao层:筛选数据

package com.manage.dao;import java.io.Serializable;
import java.util.List;
import java.util.Map;
import java.util.stream.Collector;
import java.util.stream.Collectors;import com.manage.bean.Worker;
import com.manage.data.DataBase;public class WorkerDao implements Serializable{DataBase data = new DataBase();List<Worker> list = data.getWorker();/*** 1.查询所有员工信息*/public List<Worker> querryAllMasage() {       return list;}/*** 判断是否重复*/public boolean judgeRep(String id) {      return list.stream().anyMatch(i->i.getId().equals(id));}/*** 2.新增一条员工信息*/public void addMassage(Worker wo) {list.add(wo);data.WriteData(list);}/*** 3.根据员工编号删除指定员工信息*/public void delById(String id) {list.removeIf(i->i.getId().equals(id));data.WriteData(list);}/*** 4.查询工资在5000 - 10000范围的员工有哪些*/public Iterable<Worker> querrySalRange(double i, double j) {       return list.stream().filter(k->k.getSalary()>=i&&k.getSalary()<=j).collect(Collectors.toList());}/*** 5.查询10月份入职的员工有哪些*/public Iterable<Worker> querryByMonth(int i) {return list.stream().filter(k->k.getTime().contains("-"+i+"-")).collect(Collectors.toList());}/*** 6.按照性别显示员工信息*/public Map<String, List<Worker>> showBySex() {     return list.stream().collect(Collectors.groupingBy(Worker :: getSex));}/*** 7.查询姓李员工有哪些?*/public List<Worker> querryByFirstName(String string) {return list.stream().filter(i->i.getName().startsWith(string)).collect(Collectors.toList());}}

4.view层:输入输出数据

package com.manage.view;import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Scanner;import com.manage.bean.Worker;
import com.manage.dao.WorkerDao;public class View implements Serializable{static Scanner scan = new Scanner(System.in);static WorkerDao dao = new WorkerDao();public static void main(String[] args) {boolean isloop = true;while(isloop) {System.out.println("按0.退出");System.out.println("按1.查询所有员工信息");System.out.println("按2.新增一条员工信息");System.out.println("按3.根据员工编号删除指定员工信息");System.out.println("按4.查询工资在5000 - 10000范围的员工有哪些");System.out.println("按5.查询10月份入职的员工有哪些");System.out.println("按6.按照性别显示员工信息");System.out.println("按7.查询姓李员工有哪些");System.out.println("请输入操作指令:");int in = scan.nextInt();switch (in) {case 0:isloop = false;System.out.println("退出成功");break;case 1:
//          1.查询所有员工信息querryAllMasage();break;case 2:
//          2.新增一条员工信息addMassage();break;case 3:
//          3.根据员工编号删除指定员工信息delById();break;case 4:
//          4.查询工资在5000 - 10000范围的员工有哪些?querrySalRange();break;case 5:
//          5.查询10月份入职的员工有哪些querryByMonth();break;case 6:
//          6.按照性别显示员工信息showBySex();break;case 7:
//          7.查询姓李员工有哪些?querryByFirstName();break;default:System.out.println("输入指令有误");break;}}}/*** 7.查询姓李员工有哪些?*/private static void querryByFirstName() {System.out.println("姓李的员工信息如下:");System.out.println("员工编号\t员工姓名\t员工性别\t工资\t入职时间");dao.querryByFirstName("李").forEach(i->System.out.println(i.getId()+"\t"+i.getName()+"\t"+i.getSex()+"\t"+i.getSalary()+"\t"+i.getTime()));    }/*** 6.按照性别显示员工信息*/private static void showBySex() {Map<String, List<Worker>> map = dao.showBySex();System.out.println("共有"+map.size()+"种性别");map.keySet().forEach(j->{System.out.println("其中性别为"+j+"的员工信息如下:");System.out.println("员工编号\t员工姓名\t员工性别\t工资\t入职时间");map.get(j).forEach(i->System.out.println(i.getId()+"\t"+i.getName()+"\t"+i.getSex()+"\t"+i.getSalary()+"\t"+i.getTime()));});}/*** 5.查询10月份入职的员工有哪些*/private static void querryByMonth() {System.out.println("10月份入职的员工信息如下:");System.out.println("员工编号\t员工姓名\t员工性别\t工资\t入职时间");dao.querryByMonth(10).forEach(i->System.out.println(i.getId()+"\t"+i.getName()+"\t"+i.getSex()+"\t"+i.getSalary()+"\t"+i.getTime()));               }/*** 4.查询工资在5000 - 10000范围的员工有哪些*/private static void querrySalRange() {System.out.println("工资在5000 - 10000范围的员工信息如下:");System.out.println("员工编号\t员工姓名\t员工性别\t工资\t入职时间");dao.querrySalRange(5000, 10000).forEach(i->System.out.println(i.getId()+"\t"+i.getName()+"\t"+i.getSex()+"\t"+i.getSalary()+"\t"+i.getTime()));}/*** 3.根据员工编号删除指定员工信息*/private static void delById() {System.out.println("请输入员工编号:");String id = scan.next();if(dao.judgeRep(id)) {dao.delById(id);System.out.println("删除成功");}else System.out.println("输入的编号不存在");}/*** 2.新增一条员工信息*/private static void addMassage() {System.out.println("请输入员工编号:");String id = scan.next();if(!dao.judgeRep(id)) {System.out.println("请输入员工姓名:");String name = scan.next();System.out.println("请输入员工性别:");String sex = scan.next();System.out.println("请输入工资:");double salary = scan.nextDouble();System.out.println("请输入入职时间:");String time = scan.next();Worker wo= new Worker(id, name, sex, salary, time);dao.addMassage(wo);System.out.println("添加成功");}else System.out.println("输入的编号已存在");       }/*** 1.查询所有员工信息*/private static void querryAllMasage() {
//      员工编号 员工姓名 员工性别 工资 入职时间System.out.println("员工编号\t员工姓名\t员工性别\t工资\t入职时间");List<Worker> list = new ArrayList<>();dao.querryAllMasage().forEach(i->System.out.println(i.getId()+"\t"+i.getName()+"\t"+i.getSex()+"\t"+i.getSalary()+"\t"+i.getTime()));}
}

11.2Java员工信息管理系统相关推荐

  1. Linux多线程编程之员工信息管理系统

    员工信息管理系统是基于Linux 多线程并发服务器编程,由服务器端和客户端构成,客户端可以运行在多个不同的主机上连接服务器,服务器对员工信息的操作结果通过"员工信息文件"来保存,即 ...

  2. Eclipse+Java+Swing+Mysql实现员工信息管理系统

    目录 一.系统介绍 1.开发环境 2.技术选型 3.系统功能 4.数据库 二.系统展示 1.登录系统 2.主页面 3.部门管理 4.职位管理 5.员工管理 三.部分代码 AdminDao.java D ...

  3. 【java毕业设计】基于javaEE+原生Servlet+MySql的企业员工信息管理系统设计与实现(毕业论文+程序源码)——企业员工信息管理系统

    基于javaEE+原生Servlet+MySql的企业员工信息管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于javaEE+原生Servlet+MySql的企业员工信息管理系统设计 ...

  4. Javaweb实现员工信息管理系统

    员工信息管理系统 一.项目介绍 1.项目用到的技术栈 开发工具:idea 语言:java.js.html+ajax 数据库:MySQL 服务器:Tomcat 框架:mybatis.jQuery.lay ...

  5. 企业员工信息管理系统源码+ppt+论文+中期检查表+sql

    文章摘要:工程实践项目,可以修改之后作为毕设,企业员工信息管理系统,eclipse+tomcat9+mysql这是一个基于BS架构的web项目,使用了jsp+java+mysql编写,用到的技术工具版 ...

  6. (附源码)基于java的员工信息管理系统 毕业设计201524

    Springboot员工信息管理系统 摘 要 由于数据库和数据仓库技术的快速发展,企业员工信管理建设越来越向模块化.智能化.自我服务和管理科学化的方向发展.员工信息管理对处理对象和服务对象,自身的系统 ...

  7. 基于JAVA员工信息管理系统计算机毕业设计源码+系统+数据库+lw文档+部署

    基于JAVA员工信息管理系统计算机毕业设计源码+系统+数据库+lw文档+部署 基于JAVA员工信息管理系统计算机毕业设计源码+系统+数据库+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开发语 ...

  8. java毕业生设计员工信息管理系统计算机源码+系统+mysql+调试部署+lw

    java毕业生设计员工信息管理系统计算机源码+系统+mysql+调试部署+lw java毕业生设计员工信息管理系统计算机源码+系统+mysql+调试部署+lw 本源码技术栈: 项目架构:B/S架构 开 ...

  9. springboot基于java的员工信息管理系统毕业设计源码201524

    Springboot员工信息管理系统 摘 要 由于数据库和数据仓库技术的快速发展,企业员工信管理建设越来越向模块化.智能化.自我服务和管理科学化的方向发展.员工信息管理对处理对象和服务对象,自身的系统 ...

最新文章

  1. CF484E Sign on Fence
  2. 返回或输出类型为 unsigned 8-bit type(8U) 的函数积累!
  3. Nodejs的express使用教程
  4. COM与.NET调用DCOM组件
  5. python中的PEP是什么?怎么理解?(转)
  6. ModelCoder国产化解决方案已逐步代替国外软件Matlab/Simulink
  7. cefpython基础入门
  8. Android中将一个图片切割成多个图片
  9. sap固定资产号码范围_SAP--FI详细解---固定资产
  10. (哈工大)计算机网络体系结构——OSI、TCP/IP、5层模型
  11. 路由器和交换机的基本配置
  12. 【NKOJ-4234】三角分形
  13. 【转】四种主流温度传感器的优缺点比较
  14. 银行网点管理转型专家
  15. 万字说透 Decentraland:元宇宙的先行者
  16. 跌倒检测_使用姿势估计的跌倒检测
  17. Linux+MySQL+MyCat实现分库分表,通过MyCat数据库中间件实现分库分表配置实战
  18. python语句print(0xa+0xb)_Python语句print(0xA+0xB)的输出结果为()
  19. USRP B210 Ubuntu基本测试
  20. 正则表达式验证座机号码,手机号等

热门文章

  1. XMind 8 Update 9 安装教程(亲测有效)
  2. bullmind在线思维导图软件
  3. Java 填充数据到pdf模板打印
  4. 如何规避“Flash中国特供版”
  5. c++的STL常用库的使用大总结
  6. MATLAB 符号表达式与运算全面详细讲解
  7. 青岛大学_王卓老师【数据结构与算法】Week02_02_案例引入_学习笔记
  8. mac 卸载 安装mysql_Mac 卸载与安装mysql
  9. 人人都能懂的ChatGPT解读
  10. EPLAN_采购列表的使用