职工管理系统java课程设计简单实现.docx
《职工管理系统java课程设计简单实现.docx》由会员分享,可在线阅读,更多相关《职工管理系统java课程设计简单实现.docx(15页珍藏版)》请在冰豆网上搜索。
职工管理系统java课程设计简单实现
职工信息管理系统设计
1、绪论
1.1关键技术介绍
Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。
Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
主要工作是通过编程语言来制作互联网页面、制作动态效果以及网站等技术。
1.1.1JAVA技术
Java是目前最为流行的程序设计语言。
Java中的高级技术,其中的多线程、集合、泛型、RTTI等。
实际编程中GUI程序设计、多媒体程序设计、数据库和网络程序设计。
1.1.2SQL数据库
数据库指的是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度的特点、是与应用程序彼此独立的数据集合。
在经济管理的日常工作中,常常需要把某些相关的数据放进这样的“仓库”,并根据管理的需要进行相应的处理。
二、需求分析
职工管理系统是一个工作单位不可缺少的管理工具,它管理的数据对于公司的决策者和管理者来说都至关重要,所以职工管理系统应该能够为用户提供充足的信息和快捷的查询手段。
但一直以来各个公司基本上都是靠传统的人工方式来管理职工信息,这种管理方式存在着许多缺点,如:
效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于信息的查找、更新和维护都带来了不少的困难。
当今社会,信息迅速膨胀,随着各个公司的规模增大,有关信息管理工作所涉及的数据量越来越大,职工信息量也大大增加,利用传统的手工查询、登记、修改等方法的处理速度远远跟不上公司的需求,有的公司不得不靠增加人力、物力来进行信息管理。
随着计算机技术的不断提高,计算机作为知识经济时代的产物,其强大的功能已为人们深刻认识,它已进入人类社会的各个行业和领域并发挥着越来越重要的作用,成为人们工作和生活中不可缺少的一部分。
而作为计算机应用的一部分,使用计算机对职工进行管理,具有手工管理所无法比拟的优点。
例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高职工管理的效率,也是公司的科学化、正规化管理和与世界接轨的重要条件。
职工管理系统作为一种管理软件正在各公司中得到越来越广泛的应用,且已达到了良好效果。
三、系统概要设计:
3.1问题描述
对单位的职工进行管理,包括插入、删除、查找、排序等功能。
3.2要求
职工对象包括员工号(员工号不重复),姓名(字符串),性别(字符),年龄(数字),学历(字符串),部门(字符串),工资(数字),住址(字符串),电话(数字)等信息。
(1)新增一名职工:
将新增职工各项资料加入数据库。
(2)删除一名职工:
从数据库中删除一名职工对象。
(3)查询:
按照员工号、姓名、部门查询已存在的员工信息。
(4)修改:
检索某个职工对象,对其某些属性进行修改。
(5)排序:
按某种需要对职工对象文件进行排序。
系统功能结构图
3.3数据库设计
共设计包括Manager、Employees两个表。
表项如下:
Manager表:
员工号
int
姓名
Char
性别
Char
年龄
int
学历
char
部门
char
工资
Int
住址
Varchar
电话
varchar
Mnager表:
Username
Char
Password
char
四、系统详细设计
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,"新员工录入信息成功!
","查询结果",JOptionPane.PLAIN_MESSAGE);
}
}
}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(){
publicvoidactionPerformed(java.awt.event.ActionEvente){
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修改员工信息
此部分包括修改员工家庭住址、部门、学历、收入、电话号码等信息。
在修改信息之前,可以检索数据库检查修改人员是否存在。
由于时间有限,没有设计同时修改多项纪录的操作,是本设计的不足。
由于修改功能各项代码大致相似,下文只贴出修改地址的关键代码:
publicvoidactionPerformed(ActionEvente){
Stringsql1="selectEmployeeIDfromEmployeeswhereEmployeeID="+jTextField.getText();
ResultSetrs=DbConnection.dbQuery(sql1);
try{
if(rs.next()){//检索输入员工是否存在的判断语句
Stringsql="select*fromEmployeeswhereEmployeeID="+jTextField.getText();
ResultSetn=DbConnection.dbQuery(sql);
Stringsql2="updateEmployeessetAddress='"+jTextField1.getText()+"'whereEmployeeID="+jTextField.getText();//修改员工信息的SQL语句
DbConnection.dbUpdate(sql2);
JOptionPane.showMessageDialog(this,"地址修改成功!
","information",JOptionPane.INFORMATION_MESSAGE);
}
else
JOptionPane.showMessageDialog(null,"该员工不存在,请重新输入!
","警告",JOptionPane.PLAIN_MESSAGE);
}catch(Exceptione1){
e1.printStackTrace();
}
if(jTextField1.getText()==null){
JOptionPane.showMessageDialog(null,"新地址不能为空!
","错误",JOptionPane.PLAIN_MESSAGE);
}
}
privateJButtongetJButton(){
if(jButton==null){
jButton=newJButton();
jButton.setBounds(newRectangle(70,199,100,40));
jButton.setText("确定");
jButton.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEvente){
}
});
}
returnjButton;
}
privateJButtongetJButton1(){
if(jButton1==null){
jButton1=newJButton();
jButton1.setBounds(newRectangle(217,199,100,40));
jButton1.setText("取消");
jButton1.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEvente){
dispose();//点击取消按钮,关闭窗口
}
});
}
returnjButton1;
}
privateJButtongetJButton2(){
if(jButton2==null){
jButton2=newJButton();
jButton2.setBounds(newRectangle(364,199,100,40));
jButton2.setText("清除");
jButton2.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEvente){
jTextField.setText("");
jTextField1.setText("");//点击清除按钮,将其置空
}
});
}
returnjButton2;
}
}
4.4查询员工信息
此部分包括通过员工号、姓名、部门,查询员工其他信息。
在查询信息之前,可以检索数据库检查修改人员是否存在。
关键代码如下:
//通过员工号查询其他信息
publicvoidactionPerformed(ActionEvente){
//TODOAuto-generatedmethodstub
Stringsql="select*fromEmployeeswhereEmployeeID='"+jTextField.getText()+"'";
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"));
}
else
JOptionPane.showMessageDialog(null,"本公司无该职工!
","查找结果",JOptionPane.PLAIN_MESSAGE);
}catch(Exceptione1){
e1.printStackTrace();
}
}
//通过部门名称,查询部门员工信息
publicvoidactionPerformed(ActionEvente){
//TODOAuto-generatedmethodstub
StringDepartmentName=(String)jComboBox.getSelectedItem();
Stringsql="select*fromEmployeeswhereDepartmentName='"+DepartmentName+"'";
ResultSetrs=DbConnection.dbQuery(sql);
inti=0;
try{
while(rs.next()){
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]=String.valueOf(rs.getInt(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]=rs.getString(11);
i++;
}
}catch(Exceptione1){
e1.printStackTrace();
}
}
privateJComboBoxgetJComboBox(){//通过下拉菜单选择部门
if(jComboBox==null){
jComboBox=newJComboBox();
jComboBox.addItem("经理办公室");
jComboBox.addItem("人力资源部");
jComboBox.addItem("市场部");
jComboBox.addItem("研发部");
jComboBox.addItem("财务部");
jComboBox.setBounds(newRectangle(353,19,157,42));
jComboBox.setFont(newFont("Dialog",Font.BOLD,18));
}
returnjComboBox;
}
4.5删除员工信息
此部分包括删除员工全部信息,删除员工地址、学历、电话等信息。
由于时间有限,没有设计同时删除多项纪录的操作,是本系统的不足。
在删除信息之前,可以检索数据库检查修改人员是否存在。
关键代码如下:
//删除员工全部信息
publicvoidactionPerformed(ActionEvente){
Stringsql1="selectEmployeeIDfromEmployeeswhereEmployeeID="+jTextField.getText();
ResultSetrs=DbConnection.dbQuery(sql1);
try{
if(rs.next()){
Stringsql="select*fromEmployeeswhereEmployeeID="+jTextField.getText();
DbConnectioncon=newDbConnection();
ResultSetrs2=con.dbQuery(sql);
JOptionPane.showMessageDialog(this,"您确定要删除该员工的基本信息吗?
","警告",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