绩效考核系统开发笔记

2021-01-09 22:57:23

写完了用户登录注册部分,写了一个为每个用户动态创建独有sql表的方法,但遇到了一个问题,问题代码如下:

public void newAssesssql(String a) 
    {
        // 为每个用户创建独有的sql表,用来存放员工的信息,
        // sql表的命名规则遵循“用户名+_performance_appraisal_list”
        try {
            
            ps=ct.prepareStatement("CREATE TABLE " ? (\r\n" + 
                    "  `id` INT NOT NULL AUTO_INCREMENT, \r\n" + 
                    "  `staff_name` VARCHAR(45) NOT NULL COMMENT '',\r\n" + 
                    "  `normal_days` DECIMAL(10,1) NOT NULL COMMENT '',\r\n" + 
                    "  `late_days` DECIMAL(10,1) NOT NULL COMMENT '',\r\n" + 
                    "  `leave_days` DECIMAL(10,1) NOT NULL COMMENT '',\r\n" + 
                    "  `absenteeism_days` INT NOT NULL COMMENT '',\r\n" + 
                    "  `work_hours` INT NOT NULL COMMENT '',\r\n" + 
                    "  `work_piece` INT NOT NULL COMMENT '',\r\n" + 
                    "  `work_content` VARCHAR(45) NOT NULL COMMENT '',\r\n" + 
                    "  `technology_improve` VARCHAR(45) NOT NULL COMMENT '',\r\n" + 
                    "  `quarter_class` VARCHAR(45) NOT NULL COMMENT '',\r\n" + 
                    "  `rewards_time` INT NOT NULL COMMENT '',\r\n" + 
                    "  `punishment_time` INT NOT NULL COMMENT '',\r\n" + 
                    "  `quarter` VARCHAR(45) NOT NULL COMMENT '',\r\n" + 
                    "  `assess_result` VARCHAR(45) NULL COMMENT '',\r\n" + 
                    "  PRIMARY KEY (`id`))");
            ps.setString(1, a);
            ps.executeUpdate();
        }

这种方法是用“.setString(x, y)”方法将变量a的值传给sql语句中的第一个“?”,但有问题,虽然错误日志里面可以看到?确实是得到了a的值,但创建sql表失败!

后面忙忙碌碌捣鼓了两个小时,换了另一种方法,直接在sql语句中用变量a,不用?,代码如下:

public void newAssesssql(String a) 
    {
        // 为每个用户创建独有的sql表,用来存放员工的信息,
        // sql表的命名规则遵循“用户名+_performance_appraisal_list”
        
        String b = "_performance_appraisal_list";
        String cString = a+b;
        try {
            
            ps=ct.prepareStatement("CREATE TABLE "+cString+" (\r\n" + 
                    "  `id` INT NOT NULL AUTO_INCREMENT, \r\n" + 
                    "  `staff_name` VARCHAR(45) NOT NULL COMMENT '',\r\n" + 
                    "  `normal_days` DECIMAL(10,1) NOT NULL COMMENT '',\r\n" + 
                    "  `late_days` DECIMAL(10,1) NOT NULL COMMENT '',\r\n" + 
                    "  `leave_days` DECIMAL(10,1) NOT NULL COMMENT '',\r\n" + 
                    "  `absenteeism_days` INT NOT NULL COMMENT '',\r\n" + 
                    "  `work_hours` INT NOT NULL COMMENT '',\r\n" + 
                    "  `work_piece` INT NOT NULL COMMENT '',\r\n" + 
                    "  `work_content` VARCHAR(45) NOT NULL COMMENT '',\r\n" + 
                    "  `technology_improve` VARCHAR(45) NOT NULL COMMENT '',\r\n" + 
                    "  `quarter_class` VARCHAR(45) NOT NULL COMMENT '',\r\n" + 
                    "  `rewards_time` INT NOT NULL COMMENT '',\r\n" + 
                    "  `punishment_time` INT NOT NULL COMMENT '',\r\n" + 
                    "  `quarter` VARCHAR(45) NOT NULL COMMENT '',\r\n" + 
                    "  `assess_result` VARCHAR(45) NULL COMMENT '',\r\n" + 
                    "  PRIMARY KEY (`id`))");
            
            ps.executeUpdate();

        }

成功创建了sql表!

2021-01-09 23:11:37

学java好累!但我不想放弃!休息!明天继续!晚安!

2021-01-11 00:59:27

今天完成了“添加”和“保存”的功能,还算顺利,就是不知道为啥,点击“保存”按钮,调用的方法里面没有写“弹出XXX窗口”的代码,它却奇怪的弹出了一个登录的窗口,明天再找问题吧!

困呀,洗洗睡了!

2021-01-2115:10:57

跌跌撞撞,磕磕绊绊,这个练手的小项目总算是完成了,下面做一下介绍:

1.首先是注册:用正则表达式限制用户名为3-12位字母或数字,密码为6-12位字母或数字;用户名不重复且两次密码输入一致方可注册成功;用户注册时将注册时间一并写入用户信息表;注册成功后系统为该用户分配用于存储员工工作信息的sql表。

2.其次是登录:用户输入已经注册好的用户名与密码,系统将其与数据库中的信息进行比对,比对成功则进入系统,失败则提示用户“用户名或密码错误!” 。

3.进入系统后会看到如下界面:左上角是logo(此系统是我为朋友做的毕业设计,她在舜宇集团实习,故用了舜宇的logo,如有侵权,将立即删除,见谅!),logo下面显示的是登录此系统的用户名,再往下是五个功能按钮(下面一一介绍);右侧上方是搜索框和按钮,下方是员工工作信息表(与数据库同步);工作信息表的“id”列为主键自增,“姓名”列到“季度等级”列为员工工作信息,HR收集,“考核结果”列是根据我朋友给的公式结合工作信息算出的结果。

4.下图为“添加”功能:所有内容都不能为空,用正则表达式限制姓名不能为数字或其他符号(表里面的数据是我之前做测试的时候写的,没做限制),其他内容不能为负,限制“第几季度”的输入格式必须为“d{4}[-][1234]{1}”,例如 2021-1;所有内容输入完毕后系统会将这些信息保存在数据库中,系统同步数据库刷新工作信息表。

 5.下图为“删除”功能:为防止用户误删,点击“删除”先弹出“是否确认删除?”的界面,如果确认删除则从数据库中移除该条信息,如果取消则不删除。

 6.下图为“目标卡”功能:用户可在考核之前设定目标卡,再根据目标卡进行计算得出考核结果。

 7.下图为“帮助”功能:帮助用户了解此系统的用法。

 8.下图为“搜索”功能:系统可根据搜索框中的内容对员工工作信息表进行过滤,显示搜索结果。

 9.下图为“分析”功能:此功能使用jFreeChart技术生成图表,可对员工绩效进行比较详细的分析。

 10.“导出”功能:将分析结果导出为图片存储在设定好的路径下。

 

因为是给我朋友做的毕业设计,所以暂时存储在我github的私有库中,等答辩结束会将其改为开源库!见谅!

posted @ 2021-01-09 23:19  C-O-L  阅读(473)  评论(0编辑  收藏  举报