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的私有库中,等答辩结束会将其改为开源库!见谅!