Java+sqlsever人事管理系统 报告.docx
- 文档编号:2182514
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:23
- 大小:393.40KB
Java+sqlsever人事管理系统 报告.docx
《Java+sqlsever人事管理系统 报告.docx》由会员分享,可在线阅读,更多相关《Java+sqlsever人事管理系统 报告.docx(23页珍藏版)》请在冰点文库上搜索。
Java+sqlsever人事管理系统报告
数
据
库
课
程
设
计
班级:
09计算机应用技术
学号:
姓名:
设计题目:
人事管理系统
指导老师:
设计时间:
2011-12-28—2012-1-10
前言
人事管理系统是企业管理系统中不可缺少的重要组成部分,它的内容对于企业的决策者和管理者来说都至关重要,所以人事档案管理系统应该能够为用户提供充足的信息和快捷的查询手段。
但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:
效率低、XX性差,另外时间一长,将产生大量的文件何数据,这对于查找、更新和维护都带来了不少的困难。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对人事档案信息进行管理,具有着手工管理所无法比拟的优点.例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高人事档案管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。
因此,开发这样一套管理软件成为很有必要的事情。
一、系统定义
不管是公司还是企业的管理离不开人事管理,对于现代社会的公司管理,人事管理系统是不可或缺的一部分,它为人事管理部门的工作人员提供多种方式的人事查询以及统计功能,另外还提供对企业的人事调动(包括添加新员工、人员退休、人员辞职等)、人员信息的改动以及查询企业员工信息等操作。
本文按照数据库系统设计的基本步骤,采取了事先进行需求分析,然后进行数据库的概念设计和逻辑结构设计,最后进行数据库详细设计的方法,完成了一个人事管理系统数据库系统的设计。
最终,在SQLSEVER2000完成的人事管理系统,可以实现:
对员工基本档案的管理、奖惩记录的管理、出勤记录的管理、职务调动记录的管理、工资管理、请销假管理。
二、需求分析
1、系统功能的基本要求
(1)登录管理
(2)人员管理:
包括添加,浏览,修改,删除,查询等
(3)部门管理:
部门管理包括添加、修改,删除
(4)报表打印
2、系统功能模块图
3、数据流程图
图1第一层数据流
图2员工信息管理数据流
图3部门信息管理数据流
三、系统设计
1、概念结构设计
画出系统E-R图
图4员工实体图
图5部门实体图
图6管理员实体图
图7各实体之间联系图(总体E-R图)
2、数据库结构的详细设计
经过检查,此数据库的详细逻辑设计满足第3X式的要求。
人事管理系统中各表的属性设计逻辑结构如下:
用户表(编号,用户名,密码)
员工表(编号,XX,性别,出生日期,民族,学历,部门名,照片,联系,联系地址,XX号)
部门表(部门号,部门名)
四、物理设计
1、数据库物理设计
数据库物理设计阶段的任务是根据具体计算机系统(DBMS和硬件等)的特点,为给定的数据库系统确定合理的存储结构和存取方法。
所谓的“合理”主要有两个含义:
一个是要使设计出的物理数据库占用较少的存储空间,另一个对数据库的操作具有尽可能高的速度。
主要体现在后者。
(1)建立索引:
①对表部门在属性列部门号上建立非聚集索引,
②对表员工在属性列出生日期上建立非聚集索引,在属性列学历上建立非聚集索引
(2)存储结构
确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排及存储结构,以及确定系统存储参数的配置。
将日志文件和数据库对象(表、索引等)分别放在不同的磁盘,可以改进系统的性能,提高系统的安全性。
所以,系统应将日志文件和数据文件存放在不同磁盘上。
2、数据库的建立
具体SQL代码如下:
createdatabase人事管理系统
onprimary
(
name=人事管理系统,
filename='F:
\朱赟\人事管理系统Data\人事管理系统.mdf',
size=5MB,
maxsize=20MB,
filegrowth=10%
)
logon
(
name=人事管理系统_日志,
filename='F:
\人事管理系统Data\人事管理系统_日志.ldf',
size=5MB,
maxsize=10MB,
filegrowth=10%
)
go
--创建用户表
createtable用户表
(
UserIDintprimarykey,
UserNamevarchar(20)notnull,
UserPasswordchar(10)notnull
)
go
--创建职工信息表
createtable员工表
(
编号intprimarykey,
XXchar(10)notnull,
性别char
(2)check(性别in('男','女')),
出生日期datetime,
民族varchar(16)notnull,
学历varchar(32)notnull,
部门名char(20)notnull,
照片image,
联系char(20),
联系地址char(50),
XX号varchar(32)notnull,
)
go
--创建部门表
createtable部门表
(
部门号intprimarykey,
部门名char(20)
)
五、系统实现与测试
1、开发工具和平台选择
NetBeansIDE是一个屡获殊荣的集成开发环境,可以方便的在Windows,Mac,Linux和Solaris中运行。
NetBeans包括开源的开发环境和应用平台,NetBeansIDE可以使开发人员利用Java平台能够快速创建Web、企业、桌面以及移动的应用程序,NetBeansIDE目前支持PHP、Ruby、JavaScript、Ajax、Groovy、Grails和C/C++等开发语言
NetBeans平台是一种可重复使用的框架用于简化其他桌面应用程式的开发。
当基于NetBeans平台的应用被执行,平台主要类别的main方法便会被执行。
可用的模组会被放置在存储器中,并且开始执行任务。
通常模组会只在被需要时,其代码才会被装进记忆。
2、系统实现
具体JAVA代码如下:
(1)、连接数据库的类和相关方法
packagea;
importjava.sql.*;
importjavax.swing.JOptionPane;
publicclassdbcon{
privateConnectionconn;
privateResultSetrs;
privateStatementstmt;
privatePreparedStatementpstmt=null;//定义预处理对象
publicbooleanlogin(Stringname,Stringpwd){
booleanflag=false;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=riverManager.getConnection("jdbc:
odbc:
zhuyun");
stmt=conn.createStatement();
rs=stmt.executeQuery("selectUserIDfrom用户表whereUserName='"+name+"'andUserPassword='"+pwd+"'");
if(rs.next()){
flag=true;
}else{
JOptionPane.showMessageDialog(null,"用户名不存在!
","提示",1);
flag=false;
}
}catch(Exceptione){
JOptionPane.showMessageDialog(null,e.toString(),"错误",1);
}
returnflag;
}
//将部门名的信息放到node中
publicResultSetnode(){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=riverManager.getConnection("jdbc:
odbc:
zhuyun");
stmt=conn.createStatement();
rs=stmt.executeQuery("select部门名from部门表");
}catch(Exceptione){
JOptionPane.showMessageDialog(null,e.toString(),"错误",1);
}
returnrs;
}
//将员工的信息放到tab表中
publicResultSettab(Stringname){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=riverManager.getConnection("jdbc:
odbc:
zhuyun");
stmt=conn.createStatement();
rs=stmt.executeQuery("selecta.*from员工表a,部门表bwherea.部门名=b.部门名andb.部门名='"+name+"'");
}catch(Exceptione){
JOptionPane.showMessageDialog(null,e.toString(),"错误",1);
}
returnrs;
}
//添加员工信息的方法
publicbooleaninsert(Stringid,Stringname,Stringsex,Stringbirth,Stringminzu,Stringxueli,Stringbumenhao,Stringcellphone,Stringaddress,Stringidcard){
booleanflag=false;
inteid=Integer.parseInt(id);
//intdid=Integer.parseInt(bumenhao);
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=riverManager.getConnection("jdbc:
odbc:
zhuyun");
//stmt=conn.createStatement();
pstmt=conn.prepareStatement("insertinto员工表(编号,XX,性别,出生日期,民族,学历,部门名,联系,联系地址,XX号)values("+eid+",'"+name+"','"+sex+"','"+birth+"','"+minzu+"','"+xueli+"','"+bumenhao+"',""'"+cellphone+"','"+address+"','"+idcard+"')");
pstmt.executeUpdate();
flag=true;
JOptionPane.showMessageDialog(null,"添加成功!
","提示",1);
}catch(Exceptione){
JOptionPane.showMessageDialog(null,e.toString(),"错误",1);
}
returnflag;
}
//删除的方法
publicbooleanDel(intk){
booleanflag=false;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection("jdbc:
odbc:
zhuyun");pstmt=conn.prepareStatement("deletefrom员工表where编号=?
");
pstmt.setInt(1,k);//赋值
intn=pstmt.executeUpdate();
if(n>0){
JOptionPane.showMessageDialog(null,"删除成功!
");
flag=true;
}else{
JOptionPane.showMessageDialog(null,"删除失败!
");
}
stmt.executeUpdate("deletefrom员工表where编号=''");
}catch(Exceptione){
JOptionPane.showMessageDialog(null,e.toString(),"错误",1);
}
returnflag;
}
//获取编号的的方法
publicvoidgetNum(intk){
booleanflag=false;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection("jdbc:
odbc:
zhuyun");
stmt=conn.createStatement();
stmt.executeUpdate("select编号from员工表where编号=''");
flag=true;
JOptionPane.showMessageDialog(null,"删除成功!
","提示",1);
}catch(Exceptione){
JOptionPane.showMessageDialog(null,e.toString(),"错误",1);
}
}
//查询出员工信息并放到指定的位置
publicvoidinfo(intk){
intid,hao=0;
Stringname,sex,brith,minzu,xueli,bumenhao=””,cellphone,address,idcard;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=riverManager.getConnection("jdbc:
odbc:
zhuyun");
stmt=conn.createStatement();
rs=stmt.executeQuery("select*from员工表where编号="+k+"");
while(rs.next()){
id=rs.getInt
(1);
name=rs.getString
(2);
sex=rs.getString(3);
birth=rs.getString(4);
minzu=rs.getString(5);
xueli=rs.getString(6);
bumenhao=rs.getString(7);
cellphone=rs.getString(9);
address=rs.getString(10);
idcard=rs.getString(11);
newModify(String.valueOf(id),name,sex,birth,minzu,xueli,bumenhao,cellphone,address,idcard,k).setVisible(true);
}
}catch(Exceptione){
JOptionPane.showMessageDialog(null,e.toString(),"错误",1);
}
}
//修改员工信息的方法
publicbooleanchange(Stringname,Stringsex,Stringbirth,Stringminzu,Stringxueli,
Stringbumenhao,Stringcellphone,Stringaddress,Stringidcard,intk){
booleanflag=false;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=riverManager.getConnection("jdbc:
odbc:
zhuyun");
stmt=conn.createStatement();
stmt.executeUpdate("update员工表setXX='"+name+"',性别='"+sex+"',出生日期='"+birth+"',民族='"+minzu+"',""学历='"+xueli+"',部门名='"+bumenhao+"',联系='"+cellphone+"',联系地址='"+address+"',""XX号='"+idcard+"'where编号="+k+"");
flag=true;
JOptionPane.showMessageDialog(null,"修改成功!
","提示",1);
}catch(Exceptione){
JOptionPane.showMessageDialog(null,e.toString(),"错误",1);
}
returnflag;
}
//查询员工详细信息
publicResultSettab1(intid){
//intidd=Integer.parseInt(id);
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=riverManager.getConnection("jdbc:
odbc:
zhuyun");
stmt=conn.createStatement();
rs=stmt.executeQuery("select*from员工表where编号='"+id+"'");
}catch(Exceptione){
JOptionPane.showMessageDialog(null,e.toString(),"错误",1);
}
returnrs;
}
}
3、系统测试
当输入用户名和密码(admin和123),点击“登录”按钮,就自动连接到相应的数据库
登录进去后进入主界面,鼠标点击部门名称,会自动弹出数据库表中的部门名,当单击部门名时,在右边界面会自动弹出该部门下的所有员工并输出基本信息。
当点击主界面上的“添加员工”按钮,会自动弹出添加信息的界面,填写完相应的信息后点击“保存”按钮,系统将会把相应的信息写入数据库中保存。
当要删除某个员工信息时,选中该员工,点击主界面上的“删除员工”按钮,就可以从数据库中删除该员工的信息。
当要修改某个员工信息时,选中该员工,点击主界面上的“修改信息”按钮,就可以从数据修改员工信息,并重新保存在数据库中。
当要查看某个员工的详细信息时,可以在主界面“快速查找”前的文本框中输入员工编号,就可以查看到该员工的详细信息
六、设计日志
2011-12-28星期三
今天是实训的第一天,没想到这一学期还是数据库的实习课程,这次我们实训只有两个周了,时间很紧急,我也有了一些紧迫感。
2011-12-29星期四
已经分好了组,可以九人一组,也可以八人一组,因为时间的原因,我选择了六人一组,并且确定了要做的内容———人事管理系统。
2011-12-30星期五
今天,我们还是得乖乖呆在教室做实习,我们想,既然定好了目标,我们就该分工合作,查找资料。
2011-12-31星期六
今天,我们继续昨天的工作,并开始了数据库的相关设计,每个人都各行其是,认真做自己的工作。
2012-1-4星期三
又是一个星期的开始,今天的实习很轻松,因为已经有了一些头绪,所以做起来比较得心应手,只想着要这样一直发展下去就好了。
2012-1-5星期四
我们已经开始调试程序了,在数据库中建表,实现了数据库与JAVA程序的连接,只要能顺利调试成功,我们就算是得到一半的收获了。
2012-1-6星期五
昨天的程序在今天终于可以运行了,数据库中的数据可以传到JAVA程序中去了,只是好久没有接触JAVA了,现在对它好像又有种似曾相识的感觉。
2012-1-9星期一
今天,在程序可以运行的时候,我们就考虑到了怎么来美化界面了,这方面也只是在JAVA中去实现,然后传给数据库,这样一来,我们都轻松了一半了。
到今天为此,好多人都已经做完了自己的任务,就等着老师的检查了,想想这两个星期也过得真快啊,现在只想有个完整的结束。
2012-1-10星期二:
今天老师检查所有的作业,大家都如释重任。
七、设计总结
经过两个星期的学习,数据库实训已经结束。
回想这两个周的学习。
我们获益匪浅。
这门学科是让我们知道怎样设计程序,还要就是写出来的程序要与数据库相连。
我们要考虑很多的因素在里面,不仅要安照别人的要求来做而且还要符合要求,同时写出来的程序要能够运行,给人不同的感觉。
在这门学科中,我们学习了怎样编写JAVA程序来连接数据库,怎么才能快速、怎样才能让去浏览你的程序。
重要的是我们写出来的程序要有人来去试你的程序,不管怎样的程序,要有人去看才算是最好的程序。
这次实习,使得我们能够更多的学习程序的编写,让我们有独立思考问题的思维。
同时也让我们展现了同学们之间的互相帮助的这种友谊。
体现了团队精神。
这一次的学习,我们是以组进行的。
首先,在实习之前,每个组给自己确立一个程序名即确立要设计怎样的一个程序。
我们这次设计的是《人事管理系统》数据题目。
根据每个同学掌握的JAVA知识点的差异,我们选择的程序是不同的,也是不一样的。
我们是六个人一组的,通过这次实训,我们合作的很好。
这次学习的过程中,最难的就是写程序了并且要把写出来的JAVA程序和数据库相连,在写程序是时候,我们会遇到很多的问题,不知道怎样去写,怎么让写的程序能达到运行的效果,在很多时候,我们写出来的程序会有很多的问题,不符合要求,但这样也让我们学会了在网上查别人做好的程序来解决问题,独立思考的好习惯。
虽然如此,我们还是坚持下
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java+sqlsever人事管理系统 报告 Java sqlsever 人事管理系统