职工管理系统java课程设计简单实现Word下载.docx
《职工管理系统java课程设计简单实现Word下载.docx》由会员分享,可在线阅读,更多相关《职工管理系统java课程设计简单实现Word下载.docx(15页珍藏版)》请在冰豆网上搜索。
(1)新增一名职工:
将新增职工各项资料加入数据库。
(2)删除一名职工:
从数据库中删除一名职工对象。
(3)查询:
按照员工号、姓名、部门查询已存在的员工信息。
(4)修改:
检索某个职工对象,对其某些属性进行修改。
(5)排序:
按某种需要对职工对象文件进行排序。
系统功能结构图
3.3数据库设计
共设计包括Manager、Employees两个表。
表项如下:
Manager表:
员工号
int
姓名
Char
性别
年龄
学历
char
部门
工资
Int
住址
Varchar
电话
varchar
Mnager表:
Username
Password
四、系统详细设计
4.1新员工信息录入
此部分在添加员工信息之前检索数据库有关表项,检查是否存在重复员工号,若存在,提示员工号码存在并停止录入操作,若不存在,则进行录入。
也可通过设置数据库主键形式,对员工号的唯一性加以确认。
关键代码如下:
publicvoidactionPerformed(ActionEvente){
Stringsql1="
selectEmployeeIDfromEmployeeswhereEmployeeID="
+jTextField.getText();
ResultSetrs=DbConnection.dbQuery(sql1);
try{if(rs.next()){//对select结果的判断,若存在重复,则运行下面提示
JOptionPane.showMessageDialog(null,"
该员工号码存在,请重新输入!
"
"
警告"
JOptionPane.PLAIN_MESSAGE);
}
else{
StringSex=null;
if(jRadioButton.isSelected())
Sex=jRadioButton.getText();
else
Sex=jRadioButton1.getText();
StringDepartmentName=(String)jComboBox.getSelectedItem();
Stringsql="
insertintoEmployees(EmployeeID,Name,Education,Birthday,Sex,WorkYear,Address,PhoneNumber,DepartmentName,InCome,Age)values('
+jTextField.getText()+"
'
'
+jTextField1.getText()+"
+jTextField2.getText()+"
+jTextField3.getText()+"
+Sex+"
+jTextField8.getText()+"
+jTextField4.getText()+"
+jTextField5.getText()+"
+DepartmentName+"
+jTextField6.getText()+"
+jTextField7.getText()+"
)"
;
intn=DbConnection.dbUpdate(sql);
if(n==1)
{
JOptionPane.showMessageDialog(null,"
新员工录入信息成功!
查询结果"
}
}
}catch(Exceptionse){
se.printStackTrace();
}}
privateJButtongetJButton(){
if(jButton==null){
jButton=newJButton();
jButton.setBounds(newRectangle(35,531,107,31));
jButton.setText("
确定"
);
jButton.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEvente){
}
});
returnjButton;
privateJButtongetJButton1(){
if(jButton1==null){
jButton1=newJButton();
jButton1.setBounds(newRectangle(165,532,107,31));
jButton1.setText("
取消"
jButton1.addActionListener(newjava.awt.event.ActionListener(){
dispose();
//点击取消按钮,关闭窗口
returnjButton1;
4.2显示员工信息
此部分使用jTable显示员工各项信息。
privateJTablegetJTable(){
if(jTable==null){
Stringa[][]=newString[30][11];
//定义数组用来存放员工信息
Stringcolname[]={"
员工号"
姓名"
文化程度"
出生日期"
性别"
工作年份"
地址"
电话"
部门"
收入"
年龄"
};
inti=0;
Stringsql="
select*fromEmployees"
ResultSetrs=DbConnection.dbQuery(sql);
try{
while(rs.next()){//a[1][0]表示第一个员工的11项信息
a[i][0]=rs.getString
(1);
a[i][1]=rs.getString
(2);
a[i][2]=rs.getString(3);
a[i][3]=rs.getString(4);
a[i][4]=rs.getString(5);
a[i][5]=rs.getString(6);
a[i][6]=rs.getString(7);
a[i][7]=rs.getString(8);
a[i][8]=rs.getString(9);
a[i][9]=String.valueOf(rs.getFloat(10));
a[i][10]=String.valueOf(rs.getInt(11));
i++;
}catch(SQLExceptione){
e.printStackTrace();
}finally{
DbConnection.close();
jTable=newJTable(a,colname);
jTable.setShowHorizontalLines(true);
jTable.setShowVerticalLines(true);
jTable.setBounds(newRectangle(34,61,645,342));
jTable.setShowGrid(true);
returnjTable;
publicvoidactionPerformed(ActionEventarg0){
4.3修改员工信息
此部分包括修改员工家庭住址、部门、学历、收入、电话号码等信息。
在修改信息之前,可以检索数据库检查修改人员是否存在。
由于时间有限,没有设计同时修改多项纪录的操作,是本设计的不足。
由于修改功能各项代码大致相似,下文只贴出修改地址的关键代码:
Stringsql1="
try{
if(rs.next()){//检索输入员工是否存在的判断语句
Stringsql="
select*fromEmployeeswhereEmployeeID="
ResultSetn=DbConnection.dbQuery(sql);
Stringsql2="
updateEmployeessetAddress='
whereEmployeeID="
//修改员工信息的SQL语句
DbConnection.dbUpdate(sql2);
JOptionPane.showMessageDialog(this,"
地址修改成功!
information"
JOptionPane.INFORMATION_MESSAGE);
}
JOptionPane.showMessageDialog(null,"
该员工不存在,请重新输入!
}catch(Exceptione1){
e1.printStackTrace();
if(jTextField1.getText()==null){
新地址不能为空!
错误"
privateJButtongetJButton(){
jButton.setBounds(newRectangle(70,199,100,40));
jButton1.setBounds(newRectangle(217,199,100,40));
dispose();
privateJButtongetJButton2(){
if(jButton2==null){
jButton2=newJButton();
jButton2.setBounds(newRectangle(364,199,100,40));
jButton2.setText("
清除"
jButton2.addActionListener(newjava.awt.event.ActionListener(){
jTextField.setText("
jTextField1.setText("
//点击清除按钮,将其置空
returnjButton2;
4.4查询员工信息
此部分包括通过员工号、姓名、部门,查询员工其他信息。
在查询信息之前,可以检索数据库检查修改人员是否存在。
//通过员工号查询其他信息
//TODOAuto-generatedmethodstub
select*fromEmployeeswhereEmployeeID='
ResultSetrs=DbConnection.dbQuery(sql);
try{
if(rs.next())
{
jTextField1.setText(rs.getString("
EmployeeID"
));
jTextField2.setText(rs.getString("
Name"
jTextField3.setText(rs.getString("
Sex"
jTextField4.setText(rs.getString("
WorkYear"
jTextField5.setText(rs.getString("
Education"
jTextField6.setText(rs.getString("
DepartmentName"
jTextField7.setText(rs.getString("
InCome"
jTextField8.setText(rs.getString("
Address"
jTextField9.setText(rs.getString("
PhoneNumber"
jTextField10.setText(rs.getString("
Birthday"
JOptionPane.showMessageDialog(null,"
本公司无该职工!
查找结果"
JOptionPane.PLAIN_MESSAGE);
}catch(Exceptione1){
//通过部门名称,查询部门员工信息
publicvoidactionPerformed(ActionEvente){
StringDepartmentName=(String)jComboBox.getSelectedItem();
select*fromEmployeeswhereDepartmentName='
inti=0;
while(rs.next()){
a[i][5]=String.valueOf(rs.getInt(6));
a[i][10]=rs.getString(11);
i++;
privateJComboBoxgetJComboBox(){//通过下拉菜单选择部门
if(jComboBox==null){
jComboBox=newJComboBox();
jComboBox.addItem("
经理办公室"
人力资源部"
市场部"
研发部"
财务部"
jComboBox.setBounds(newRectangle(353,19,157,42));
jComboBox.setFont(newFont("
Dialog"
Font.BOLD,18));
returnjComboBox;
4.5删除员工信息
此部分包括删除员工全部信息,删除员工地址、学历、电话等信息。
由于时间有限,没有设计同时删除多项纪录的操作,是本系统的不足。
在删除信息之前,可以检索数据库检查修改人员是否存在。
//删除员工全部信息
Stringsql1="
if(rs.next()){
Stringsql="
DbConnectioncon=newDbConnection();
ResultSetrs2=con.dbQuery(sql);
您确定要删除该员工的基本信息吗?
警告"
JOptionPane.QUESTION_MESSAGE);
intok=JOptionPane.showConfirmDialog(this,"
基本信息将被删除!
确认"
JOptionPane.YES_NO_OPTION,JOptionPane.INFORMATION_MESSAGE);
if(e.getSource()==jButton||e.getSource()==jTextField)
{
try{
if(ok==JOptionPane.YES_OPTION)
{
sql="
DeletefromEmployeeswhereEmployeeID="
+jTextField.ge