2021-07-19

 大二小学期的java课设需要做一个【人事管理系统】,想着还是应该留点记录的,一直想把当时遇到的问题和心得体会发出来,之前总是太多事情老是忘所以才拖到现在qwq

整个系统我参考的是温姑娘的那篇文章,原文链接如下:

Java窗体应用程序:人事管理系统_温姑娘的博客-CSDN博客_java窗体程序

后来根据需求又自己改改改,期间也遇到了很多问题,以下。

关于系统的几个bug:

1.人员调动模块:

(1)每运行一次不能对同一个人进行连续调动,报错NumberFormatException:

!!!找到原因:在部门的ComboBox中默认显示的部门1是未被SELECTED的,所以,newDeptId会是null值。

(纠正一下,不是不能对同一个人进行连续调动,而是不能调入默认的部门1)

怎么办呢?反复选几次就好了hhh,但是还是无法insert into change表,报错SQL语句有语法错误,查了半天也不知道错在哪,救命。

!!!有希望了,应该是change关键字冲突了,坑啊!改成changedhistory表。

(2)有人可能想“隐瞒自己的操作”,于是在历史操作表中删除了某一行,就会出现再也无法插入的悲剧,因为主键changedId是通过getRow()方法获取的,会出现“PRIMARY DUPLICATE”!

(所以另一方面来看这或许不是bug而是一个好的约束...这个问题先暂时不管)

2.删除人员信息、部门管理、人员调动等模块:

(1)修改信息成功后没有自动刷新页面的问题;

!!!解决:

在父类中声明为全局静态变量并初始化就好了!

3.有一个问题一开始困扰了我好久好久好久*n:就是子类如何使用父类的变量?

网上说有两种办法,一是把父类变量设置为静态类成员;二是通过构造方法透传(这个我还不太理解);其实最后发现很简单,还是书上的知识没掌握好,以下。

父类声明:

子类调用: (记得extends

4.一个小想法,有时间去完成:

把现在的三个操作历史的类合并成一个“changedHistory.java”,三个类的方法合并到一个类中,在三个历史操作查询的页面创建changedHistory()实例对象,再分别调用不同的方法,方法重名问题?好像有点麻烦..

Date nowTime = new Date();

SimpleDateFormat matter = new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);

String date = matter.format(nowTime);

System.out.println(date);

>>2021-7-18 01:39:59

已经合并了changedHistory.java,不麻烦,searchAll(String type)方法传入一个操作类型的参数就好了,然后又写了一个queryAll(String type)的方法用作查询,现在觉得带参的方法简直是神!!!

5.今天突然发现人事管理系统的一些缺陷:

(1)三个查询模块应该有搜索框;

(2)部门管理模块点击相应的部门是不是应该显示部门里的员工?

为什么你不能pNameText.getText()???为什么pName是空值???wqnmd!

卧槽这个word真的有magic!每次记录到这里的问题总能很快解决!太nb了!

问题就出在对查询按钮监听的时候,之前是直接用带参的构造函数new一个新的实例,而pNameText.getText()写在构造函数的初始化方法中。我就想着,这样该不会是先构造新实例吧(pNameText也会重新构造,当然就会置空了),果不其然,突然灵机一动,监听触发事件时先Srting n = pNameText.getText()把输入存放在变量中,然后把构造函数的参数改为(String n),进而给初始化函数也加一个(String n)的输入参数,最后在初始化函数中的queryInfo(n)中能保留构造新实例之前的参数,实现参数的逐层传递,太赞了吧!

这里还有一个问题:( 但是我不想管了现在)如果输入姓名为空查询会有showMessageDialog的小框框,但是确定之后页面会变成以下这样,啊这。

!!!神了,这个问题自己好了,但是现在没有小框框了,不过没事那不重要hhh

总的来说,这次课设java人事管理系统的实现,从一开始的完全没有思路,到后面的不断试错,虽然在网上找到了源码,但是经过自己的改动和新增一些功能的过程中还是有学到一些东西的,做好之后也蛮有成就感的,深深体会到了凌晨一两点的时候真的会比其他时候的效率高太多hhh。同时也找到了一个解决问题好办法,就是把遇到的所有error&exception统统写下来,大大提高了解决问题的效率,虽然我不知道这是为什么,可能是会让自己更投入做一件事情吧。

来自一只大二的菜狗,希望对你能有帮助,就酱以上~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值