admin 管理员组

文章数量: 1086019

部门员工的简单查找

主要这样几个功能:

按照给定的部门编号获取属于此部门的所有员工

获取 入职时间 早于给定时间before的所有员工

数据库类:

package com.xzit.db;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.UUID;import com.xzit.domain.Department;
import com.xzit.domain.Employee;/*** 此类模仿数据库* @author Administrator**/
public final class DataBase {/* 静态属性 depTable 模仿部门表*/private static List<Department> depTable = new ArrayList<Department>(0);/* 静态属性 empTable 模仿员工表*/private static List<Employee> empTable = new ArrayList<Employee>(0);/* 静态块被加载时为empTable和depTable 进行初始化*/static{Calendar calendar = Calendar.getInstance();calendar.add(Calendar.YEAR,1990);calendar.add(Calendar.MONTH,7);calendar.add(Calendar.DATE,15);Department dep0 = new Department("code100","研发部",calendar.getTime());Department dep2 = new Department("code200","市场部",calendar.getTime());Department dep3 = new Department("code300","人事部",calendar.getTime());depTable.add(dep0);depTable.add(dep2);depTable.add(dep3);SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");try {Employee emp0 = new Employee();emp0.setBirth(sdf.parse("1988-6-23"));emp0.setCode(UUID.randomUUID().toString());emp0.setDepCode(dep0.getCdoe());emp0.setEntry(sdf.parse("2011-5-23"));emp0.setName("东方不败");emp0.setSex("男");Employee emp2 = new Employee();emp2.setBirth(sdf.parse("1978-6-23"));emp2.setCode(UUID.randomUUID().toString());emp2.setDepCode(dep0.getCdoe());emp2.setEntry(sdf.parse("2000-5-23"));emp2.setName("任我行");emp2.setSex("男");Employee emp3 = new Employee();emp3.setBirth(sdf.parse("1971-6-23"));emp3.setCode(UUID.randomUUID().toString());emp3.setDepCode(dep0.getCdoe());emp3.setEntry(sdf.parse("2005-5-23"));emp3.setName("岳不群");emp3.setSex("男");Employee emp4 = new Employee();emp4.setBirth(sdf.parse("1988-6-23"));emp4.setCode(UUID.randomUUID().toString());emp4.setDepCode(dep2.getCdoe());emp4.setEntry(sdf.parse("2014-5-23"));emp4.setName("张无忌");emp4.setSex("男");Employee emp5 = new Employee();emp5.setBirth(sdf.parse("1980-6-23"));emp5.setCode(UUID.randomUUID().toString());emp5.setDepCode(dep2.getCdoe());emp5.setEntry(sdf.parse("2016-5-23"));emp5.setName("向问天");emp5.setSex("男");Employee emp6 = new Employee();emp6.setBirth(sdf.parse("1982-6-23"));emp6.setCode(UUID.randomUUID().toString());emp6.setDepCode(dep2.getCdoe());emp6.setEntry(sdf.parse("2015-5-23"));emp6.setName("任盈盈");emp6.setSex("女");Employee emp7 = new Employee();emp7.setBirth(sdf.parse("1982-6-23"));emp7.setCode(UUID.randomUUID().toString());emp7.setDepCode(dep2.getCdoe());emp7.setEntry(sdf.parse("2013-5-23"));emp7.setName("马玉");emp7.setSex("男");Employee emp8 = new Employee();emp8.setBirth(sdf.parse("1970-6-23"));emp8.setCode(UUID.randomUUID().toString());emp8.setDepCode(dep3.getCdoe());emp8.setEntry(sdf.parse("2000-5-23"));emp8.setName("于连婷");emp8.setSex("男");Employee emp9 = new Employee();emp9.setBirth(sdf.parse("1972-6-23"));emp9.setCode(UUID.randomUUID().toString());emp9.setDepCode(dep3.getCdoe());emp9.setEntry(sdf.parse("2011-5-23"));//这里原来是emp0.setEntry,我改成9了emp9.setName("殷素素");emp9.setSex("女");Employee emp10 = new Employee();emp10.setBirth(sdf.parse("1983-6-23"));emp10.setCode(UUID.randomUUID().toString());emp10.setDepCode(dep3.getCdoe());emp10.setEntry(sdf.parse("2012-5-23"));emp10.setName("小龙女");emp10.setSex("女");empTable.add(emp0);empTable.add(emp2);empTable.add(emp3);empTable.add(emp4);empTable.add(emp5);empTable.add(emp6);empTable.add(emp7);empTable.add(emp8);empTable.add(emp9);empTable.add(emp10);} catch (ParseException e) {e.printStackTrace();}}public static List<Department> getDepTable() {return depTable;}public static List<Employee> getEmpTable() {return empTable;}
}

部门类:

package com.xzit.domain;import java.util.Date;/*** 部门实体类* @author Administrator**/
public class Department {private String cdoe; // 部门编号(实际数据库部门表记录主键id.唯一性)private String name; // 部门名称,唯一性private Date createDate; // 部门成立日期/* geter and seter methods*/public String getCdoe() {return cdoe;}public void setCdoe(String cdoe) {this.cdoe = cdoe;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Date getCreateDate() {return createDate;}public void setCreateDate(Date createDate) {this.createDate = createDate;}/*** 无参构造器*/public Department() {	}/*** 有参构造器* @param cdoe* @param name* @param createDate*/public Department(String cdoe, String name, Date createDate) {this.cdoe = cdoe;this.name = name;this.createDate = createDate;}
}

员工类:

package com.xzit.domain;import java.util.Date;/*** 员工实体类* @author Administrator**/
public class Employee {private String code; // 员工编号(实际数据库员工表记录主键id.唯一性)private String name; // 员工姓名private String sex; // 性别private Date birth; // 出生日期private Date entry; // 入职日期private String depCode; // 部门编号,必需是已有部门对象的code值,标识员工所在部门public String getCode() {return code;}public void setCode(String code) {this.code = code;}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 Date getBirth() {return birth;}public void setBirth(Date birth) {this.birth = birth;}public Date getEntry() {return entry;}public void setEntry(Date entry) {this.entry = entry;}public String getDepCode() {return depCode;}public void setDepCode(String depCode) {this.depCode = depCode;}@Overridepublic String toString() {return "Employee [code=" + code + ", name=" + name + ", sex=" + sex + ", birth=" + birth + ", entry=" + entry+ ", depCode=" + depCode + "]";}}
package com.xzit.dao;import java.util.List;import com.xzit.domain.Department;/*** 部门数据访问的接口* @author Administrator**/
public interface DepartmentDao {List<Department> foundAllDepList(); // 获取所有部门}

另一个接口:

package com.xzit.dao;import java.util.Date;
import java.util.List;import com.xzit.domain.Employee;
/*** 员工数据访问的接口* @author Administrator**/
public interface EmployeeDao {/* 按照给定的部门编号获取属于此部门的所有员工*/List<Employee> empListByDepId(String depId);/* 获取入职时间早于给定时间before的所有员工*/List<Employee> empListByEntry(Date before);}

实现类:

package com.xzit.impl;import java.util.ArrayList;
import java.util.List;import com.xzit.dao.DepartmentDao;
import com.xzit.db.DataBase;
import com.xzit.domain.Department;public class DepartmentDaoImpl implements DepartmentDao {// 获取所有部门@Overridepublic List<Department> foundAllDepList() {List<Department> rd=new ArrayList<Department>();rd=DataBase.getDepTable();return rd;}}

另一个实现类(功能多一点):

package com.xzit.impl;import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;import com.xzit.dao.EmployeeDao;
import com.xzit.db.DataBase;
import com.xzit.domain.Employee;public class EmployeeDaoImpl implements EmployeeDao {/* 按照给定的部门编号获取属于此部门的所有员工*/@Overridepublic List<Employee> empListByDepId(String depId) {//根据给的 部门编号 返回所有的部门员工,别急,让我想想(重点是这个方法当时没有想到,还是代码敲的少了)//先创建一个返回对象List<Employee> re=new ArrayList<Employee>();//获取所有的员工List<Employee> empTable =DataBase.getEmpTable();//创建一个迭代对象Iterator<Employee> it=empTable.iterator();//比较,部门编号和depId一致的收进re集合里面while(it.hasNext()) {Employee emp=it.next();if(depId.equals(emp.getDepCode())) {re.add(emp);}}return re;}/* 获取 入职时间 早于给定时间before的所有员工*/@Overridepublic List<Employee> empListByEntry(Date before) {//创建一个返回对象List<Employee> re=new ArrayList<Employee>();//获取所有员工List<Employee> empTable=DataBase.getEmpTable();//创建一个迭代对象Iterator<Employee> it=empTable.iterator();//遍历一下,找到入职时间早于before的员工while(it.hasNext()) {//获取数据Employee emp=it.next();if(before.before(emp.getEntry())) {//如果入职时间早于,则加进来re.add(emp);}}return re;}}

根据日期查找的测试类:

package com.xzit;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Scanner;
import com.xzit.dao.EmployeeDao;
import com.xzit.domain.Employee;
import com.xzit.impl.EmployeeDaoImpl;/*** 测试类* 此类测试按照用户给定的日期获取入职实际早于此日期的所有员工* @author Administrator**/
public class TestByDateGetEmployee {public static void main(String[] args) throws ParseException {/* 此注释下编码实现从控制台接收用户输入的日期*///提示用户输入想要查找的早于这个日期入职的员工的日期System.out.println("请按yyyy-mm-dd格式输入一个日期:");Scanner sc=new Scanner(System.in);SimpleDateFormat sdf=new SimpleDateFormat("yyyy-mm-dd");String scData=sc.next();//把用户输入的字符串日期转化为Data类型的数据Date userData=sdf.parse(scData);/* 此注释下完成按照给定的日期获取入职早于此日期入职的所有员工并输出到控制台显示*/EmployeeDao e=new EmployeeDaoImpl();System.out.println("入职时间早于"+scData+"的有:");//注意这个打印格式,我当时就直接打印mm,一连串打出来很难看List <Employee> mm=e.empListByEntry(userData);for(Employee u:mm) {System.out.println(u.toString());}}}

根据部门id查找的测试类:

package com.xzit;import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;import com.xzit.dao.EmployeeDao;
import com.xzit.db.DataBase;
import com.xzit.domain.Department;
import com.xzit.domain.Employee;
import com.xzit.impl.EmployeeDaoImpl;/*** 测试类* 此类完成测试按照给定的部门编号获取属于此部门的所有员工* * */
public class TestByIdGetEmployee {public static void main(String[] args) {/* 此注释下获取提供给用户选则的所有部门信息(显示在控制台供用户选择输入部门编号)*/List <Department> department=DataBase.getDepTable();//声明一个集合保存部门的名称List<String> deName=new ArrayList<String>();Iterator<Department> it=department.iterator();while(it.hasNext()) {String de=it.next().getCdoe();deName.add(de);}System.out.println("提供给用户选择的所有部门的id"+ "有:");System.out.println(deName);/* 此注释下完成获取  给定了选择部门id,属于此部门的所有员工在控制台输出显示*///用户输入部门id,获取到这个部门所有的人//提示用户输入部门idSystem.out.println("请输入想要查看的部门id:");Scanner sc=new Scanner(System.in);//接收用户输入的数据String depId=sc.next();EmployeeDao ec=new EmployeeDaoImpl();System.out.println(depId+"这个部门的人员有:");List <Employee> re=ec.empListByDepId(depId);//for的加强循环打印部门人员for(Employee u:re) {System.out.println(u.toString());}}}

结果:

 

 

本文标签: 部门员工的简单查找