• 绩效考核系统开发笔记


    2021-01-09 22:57:23

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

    public void newAssesssql(String a) 
        {
            // 为每个用户创建独有的sql表,用来存放员工的信息,
            // sql表的命名规则遵循“用户名+_performance_appraisal_list”
            try {
                
                ps=ct.prepareStatement("CREATE TABLE " ? (
    " + 
                        "  `id` INT NOT NULL AUTO_INCREMENT, 
    " + 
                        "  `staff_name` VARCHAR(45) NOT NULL COMMENT '',
    " + 
                        "  `normal_days` DECIMAL(10,1) NOT NULL COMMENT '',
    " + 
                        "  `late_days` DECIMAL(10,1) NOT NULL COMMENT '',
    " + 
                        "  `leave_days` DECIMAL(10,1) NOT NULL COMMENT '',
    " + 
                        "  `absenteeism_days` INT NOT NULL COMMENT '',
    " + 
                        "  `work_hours` INT NOT NULL COMMENT '',
    " + 
                        "  `work_piece` INT NOT NULL COMMENT '',
    " + 
                        "  `work_content` VARCHAR(45) NOT NULL COMMENT '',
    " + 
                        "  `technology_improve` VARCHAR(45) NOT NULL COMMENT '',
    " + 
                        "  `quarter_class` VARCHAR(45) NOT NULL COMMENT '',
    " + 
                        "  `rewards_time` INT NOT NULL COMMENT '',
    " + 
                        "  `punishment_time` INT NOT NULL COMMENT '',
    " + 
                        "  `quarter` VARCHAR(45) NOT NULL COMMENT '',
    " + 
                        "  `assess_result` VARCHAR(45) NULL COMMENT '',
    " + 
                        "  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+" (
    " + 
                        "  `id` INT NOT NULL AUTO_INCREMENT, 
    " + 
                        "  `staff_name` VARCHAR(45) NOT NULL COMMENT '',
    " + 
                        "  `normal_days` DECIMAL(10,1) NOT NULL COMMENT '',
    " + 
                        "  `late_days` DECIMAL(10,1) NOT NULL COMMENT '',
    " + 
                        "  `leave_days` DECIMAL(10,1) NOT NULL COMMENT '',
    " + 
                        "  `absenteeism_days` INT NOT NULL COMMENT '',
    " + 
                        "  `work_hours` INT NOT NULL COMMENT '',
    " + 
                        "  `work_piece` INT NOT NULL COMMENT '',
    " + 
                        "  `work_content` VARCHAR(45) NOT NULL COMMENT '',
    " + 
                        "  `technology_improve` VARCHAR(45) NOT NULL COMMENT '',
    " + 
                        "  `quarter_class` VARCHAR(45) NOT NULL COMMENT '',
    " + 
                        "  `rewards_time` INT NOT NULL COMMENT '',
    " + 
                        "  `punishment_time` INT NOT NULL COMMENT '',
    " + 
                        "  `quarter` VARCHAR(45) NOT NULL COMMENT '',
    " + 
                        "  `assess_result` VARCHAR(45) NULL COMMENT '',
    " + 
                        "  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的私有库中,等答辩结束会将其改为开源库!见谅!

  • 相关阅读:
    第三百九十一、二、三、四、五、六、七天 how can I 坚持
    第三百九十天 how can I 坚持
    第三百八十九天 how can I 坚持
    POJ 1745:Divisibility 枚举某一状态的DP
    POJ 1502:MPI Maelstrom Dijkstra模板题
    POJ 1160:Post Office 邮局经典DP
    POJ 1062:昂贵的聘礼
    POJ 1125:Stockbroker Grapevine
    POJ 1236:Network of Schools
    POJ 2186:Popular Cows Tarjan模板题
  • 原文地址:https://www.cnblogs.com/ms-bk/p/14256982.html
Copyright © 2020-2023  润新知