工具类

GlobalConst.java

public interface GlobalConst {String DB_NAME="eems.db";String DEPT_TABLE_NAME= "dept.table";String EMP_TABLE_NAME= "emp.table";String MANAGER_TABLE_NAME= "manager.table";
}

MD5Util.java

public class MD5Util {/*** 对传入的String进行MD5加密* * @param s* @return*/public static final String encode(String s) {// 16进制数组char hexDigits[] = { '5', '0', '5', '6', '2', '9', '6', '2', '5', 'q', 'b', 'l', 'e', 's', 's', 'y' };try {char str[];// 将传入的字符串转换成byte数组byte strTemp[] = s.getBytes();// 获取MD5加密对象MessageDigest mdTemp = MessageDigest.getInstance("MD5");// 传入需要加密的目标数组mdTemp.update(strTemp);// 获取加密后的数组byte md[] = mdTemp.digest();int j = md.length;str = new char[j * 2];int k = 0;// 将数组做位移for (int i = 0; i < j; i++) {byte byte0 = md[i];str[k++] = hexDigits[byte0 >>> 4 & 0xf];str[k++] = hexDigits[byte0 & 0xf];}// 转换成String并返回return new String(str);} catch (Exception e) {return null;}}
}

GenRandLocalDateUtil.java

产生指定范围内的随机日期

public class GenRandLocalDateUtil {// Date转LocalDatepublic static LocalDate date2LocalDate(Date date) {if (null == date) {return null;}  return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();}public static LocalDate randomLocalDate(String min, String max) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Date dateMin;Date dateMax;try {dateMin = sdf.parse(min);dateMax = sdf.parse(max);long timeMin = dateMin.getTime();// 获取日期所对应的数字long timeMax = dateMax.getTime();double random = Math.random(); // [0,1)long digit = (long) (random * (timeMax - timeMin + 1) + timeMin);Date date = new Date(digit);LocalDate res = date2LocalDate(date);return res;} catch (ParseException e) {e.printStackTrace();}return null;}public static void main(String[] args) {for (int i = 0; i < 10; i++) {LocalDate localDate = randomLocalDate("1999-9-21", "2019-9-21");System.out.println(localDate);}}}

DataInit.java

public class DataInit {private static int[] deptnos = { 1001, 1002, 1003, 1004 };private static String[] jobs = { "salesman", "manager", "clerk", "snalyst" };private static int[] empnos = new int[14];public static void main(String[] args) {genDB();// alt+shift+mgenManagerTAble();  //初始化管理员信息genDeptTable(); // 初始化部门信息genEmpTable(); // 初始化员工信息System.out.println("数据初始化成功!");}private static void genManagerTAble() { //每个Manager的JSON信息保存的文件中时,单独占一行Manager zhangsan = new Manager(1111, "zhangsan", MD5Util.encode("zhangsan"));Manager lisi = new Manager(1111, "lisi", MD5Util.encode("lisi"));//Manager的密码加密File managerTable = new File(GlobalConst.DB_NAME + "/" + GlobalConst.MANAGER_TABLE_NAME); //Manager信息保存到的文件try (BufferedWriter bw = new BufferedWriter(new FileWriter(managerTable));) {  //try-with-resource会自动关闭所创建的资源bw.write(JSON.toJSONString(zhangsan)); //写zhangsan信息到Manager数据文件 bw.write("\n"); //添加一个换行bw.write(JSON.toJSONString(lisi));  //写lisi信息到Manager数据文件} catch (Exception e) {}}private static void genEmpTable() { //所有的Emp信息以JSON数组的形式保存到文件中的List<Emp> empList = new ArrayList<>(); //保存所有的Emp信息File empTable = new File(GlobalConst.DB_NAME + "/" + GlobalConst.EMP_TABLE_NAME); //Emp信息保存到的文件Random random = new Random();for (int i = 0; i < 14; i++) { // 随机产生14组4位的员工编号empnos[i] = random.nextInt(1000) + 9000;}try (BufferedWriter br = new BufferedWriter(new FileWriter(empTable));) {for (int i = 0; i < 14; i++) {String uuid = UUID.randomUUID().toString().replaceAll("-", "");String ename = uuid.substring(3, 9);int index = random.nextInt(jobs.length);LocalDate hiredate = GenRandLocalDateUtil.randomLocalDate("1990-12-12", "2020-1-1"); //使用自定义工具类中的方法产生随机日期double sal = random.nextInt(2001) + 8000;double comm = random.nextInt(700) + 300;int deptnosIndex = random.nextInt(deptnos.length);Emp emp = new Emp(empnos[i], ename, jobs[index], empnos[index], hiredate, sal, comm,deptnos[deptnosIndex]); //根据产生的随机数据创建一个Emp对象empList.add(emp);}String json = JSON.toJSONString(empList);//将所有的Emp对象转换成JSON数组br.write(json + "\n"); //将JSON数组保存到文件中} catch (IOException e) {e.printStackTrace();}}private static void genDeptTable() {//每一个部门信息所应对的JSON对象在文件中都占一行File deptTable = new File(GlobalConst.DB_NAME + "/" + GlobalConst.DEPT_TABLE_NAME); try (BufferedWriter br = new BufferedWriter(new FileWriter(deptTable));) {for (int i = 0; i < 4; i++) {String uuid = UUID.randomUUID().toString().replaceAll("-", "");String dname = uuid.substring(4, 10);String loc = uuid.substring(12);Dept dept = new Dept(deptnos[i], dname, loc); //用产生的随机数据构造Dept对象String json = JSON.toJSONString(dept); //将Dept对象转换成JSON对象br.write(json + "\n"); //将Dept对象所对应的JSON对象保存到文件中}} catch (IOException e) {e.printStackTrace();}}private static void genDB() { //创建保存Manager、Dept、Emp数据的文件的文件夹File db = new File(GlobalConst.DB_NAME);if (db.exists()) {//如果文件夹已经存在就将其删除,唯每次运行初始化类都产生一组新的数据db.delete();}db.mkdir();}}

企业员工管理系统 三:工具类相关推荐

  1. JAVA毕业设计HTML5企业员工管理系统计算机源码+lw文档+系统+调试部署+数据库

    JAVA毕业设计HTML5企业员工管理系统计算机源码+lw文档+系统+调试部署+数据库 JAVA毕业设计HTML5企业员工管理系统计算机源码+lw文档+系统+调试部署+数据库 本源码技术栈: 项目架构 ...

  2. 基于Java的简单的企业员工管理系统

    基于Java的简单的企业员工管理系统 首先创建了一个员工类 定义员工应有的属性:工号.姓名.性别.职位.年龄.工资.部门 /** 员工属性 */ private int sno;//工号private ...

  3. [附源码]java毕业设计企业员工管理系统

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  4. HTML5期末大作业:管理系统网站设计——蓝色OA企业员工管理系统(10页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源

    HTML5期末大作业:管理系统网站设计--蓝色OA企业员工管理系统(10页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码 常 ...

  5. [附源码]java毕业设计生产型企业员工管理系统

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  6. java计算机毕业设计HTML5企业员工管理系统源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计HTML5企业员工管理系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计HTML5企业员工管理系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈 ...

  7. 企业员工管理系统开发

    企业员工管理系统开发 程序介绍 代码 程序介绍 系统介绍 企业员工信息管理系统主要是对企业员工的基本信息进行增.删.改.查的相关操作,以便用户可以快速地对这些信息进行管理.本系统对管理者的控制更加严格 ...

  8. [附源码]计算机毕业设计JAVA企业员工管理系统

    [附源码]计算机毕业设计JAVA企业员工管理系统 项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(Inte ...

  9. java计算机毕业设计企业员工管理系统源码+程序+lw文档+mysql数据库

    java计算机毕业设计企业员工管理系统源码+程序+lw文档+mysql数据库 java计算机毕业设计企业员工管理系统源码+程序+lw文档+mysql数据库 本源码技术栈: 项目架构:B/S架构 开发语 ...

最新文章

  1. 英伟达发布RTX 2000系列显卡,“实时光线追踪”究竟能为游戏带来什么?
  2. 三数之和(Java、C实现)
  3. Hyper-V Server共享VHDX
  4. c语言哈密顿路径算法,用于检查给定图中是否存在哈密顿循环或路径的C ++程序...
  5. 【Git】Git处理新Repository无法push的问题
  6. linux中如何运行html文件路径问题,Linux中如何查询运行文件的全路径的方法
  7. 所有受限制的应用程序包_您需要了解的有关Mac的Apple新款M1芯片的所有信息
  8. 华为开发的新型智能手机的正面和背面采用玻璃材料制成
  9. java p39课后答案_面向对象程序设计(JAVA)答案
  10. 360云盘会不会停止服务器,360云盘能否继续使用啊?
  11. oracle库导出,oracle整库导出
  12. 解决: Couldn‘t find meta-data for provider with authority xxx.fileProvider
  13. 苹果iPhone手机用iTunes更新IOS14.3系统失败怎么解决
  14. 小米手机android版本怎么更新,基于Android 10的MIUI稳定版正式推送,你的小米手机更新了吗?...
  15. Flutter图片裁剪
  16. 计算机视觉之目标检测(object detection)《1》
  17. python自动化测试培训脱产_柠檬班python自动化测试课程完整版
  18. 有意思的hand-crafted features based IQA的论文吧(图像质量评价)
  19. 解密:顺丰是一家什么样的公司?
  20. Python 脚本帮你找出微信上删除了你的“好友“

热门文章

  1. 【TVM】User Tutorial--Introduction
  2. 39. 【农产品溯源项目前后端Demo】创建用户、角色、菜单、部门、岗位
  3. linux下使用无线网卡的命令行方法
  4. 对宿管阿姨工作和生活的
  5. java计算机毕业设计基于安卓Android/微信小程序的英语单词学习APP系统
  6. 如何在jieba分词中加自定义词典_R-数据挖掘 | jiebaR 分词
  7. 成都影创入选成都新经济百家重点培养企业名单
  8. 程序员,要不要考软考高级职称
  9. win10浏览器加载很慢_win10打开网页慢是什么原因?win10打开网页慢解决方法
  10. NVIDIA CUDA 高度并行处理器编程(七):并行模式:前缀和