基于Java的教师档案管理系统的设计Word版Word下载.docx
- 文档编号:7809919
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:25
- 大小:64.35KB
基于Java的教师档案管理系统的设计Word版Word下载.docx
《基于Java的教师档案管理系统的设计Word版Word下载.docx》由会员分享,可在线阅读,更多相关《基于Java的教师档案管理系统的设计Word版Word下载.docx(25页珍藏版)》请在冰点文库上搜索。
1设计目的
长久以来,教职工的管理工作大多数都采用的是传统的手工方式来记录相关信息,这种管理方式存在很多缺点,比如说,教职工信息、工资信息的录入,查询,更新,分析都要完全依赖管理人员的手工记录和人工分析,人工记录是相当麻烦的。
为满足需求,决定采用各种编程语言JSP开发了基于B/S架构的教师档案管理系统,教师档案管理系统是涉及信息科学、数据计算和计算机技术的复杂的人机交互系统。
通过这些系统,可以对教职工和管理进行智能化管理,有效地记录并查询教职工的各项情况,为管理者提供了诸多方便。
2设计的主要内容和要求
2.1数据库的逻辑结构设计
我们知道,数据库概念模型独立于任何特定的数据库管理系统,因此,需要根据具体使用的数据库管理系统的特点进行转换。
即转化为按计算机观点处理的逻辑关系模型,E-R模型向关系数据库模型转换应遵循下列原则:
*每一个实体要转换成一个关系
*所有的主键必须定义非空(NOTNULL)
*对于二元联系应按照一对多、弱对实、一对一、多对多等联系来定义外键。
根据E-R模型,教师档案管理系统建立了以下逻辑数据结构,下面是各数据表的详细说明。
(1)教师信息表主要是记录了教师的基本信息。
表结构如表2.1所示。
表2.1教师信息表(t_jaoshi)
列名
数据类型
长度
允许空
是否主键
说明
id
int
4
否
是
ID
gonghao
varchar
50
教师号
xingming
姓名
xingbie
性别
nianling
20
年龄
shengri
出生日期
gongzuo
工作时间
zhuanye
专业
zhaopian
照片
beizhu
备注信息
(2)工资信息表主要是记录了教职工工资的基本信息。
表结构如表2.2所示。
表2.2工资信息表(t_gongzi)
jsid
教师ID
riqi
工资月份
gongzi
工资数
jiangjin
奖金
(3)管理员信息表主要记录的管理员的账号信息,包括用户名和密码,表结构如表2.3所示。
表2.3管理员信息表(t_admin)
userId
编号
userName
用户名
userPw
密码
2.2数据库的连接原理
采用JDBC连接数据库的方式,只需在工程中导入对应数据库的jar包,就可以方便的对数据库进行连接,在程序中,用Class.forName()方法来加载驱动程序,在用DriverManager的getConnection()方法就可以创建一个数据库连接。
程序采用的是DAO模式来操作数据库,DAO(DataAccessObject,数据访问对象),是Java编程中的一种经典模式,已被广泛应用,也是J2EE架构中持久层框架的基础知识,基于分层次式的软件架构来实现对数据库的访问操作。
DAO模式的主要思想就是从抽象数据源获取与操纵数据的方法。
抽象数据的含义就是编写应用程序的程序员不必关心数据库的物理位置,已经是何种数据库,只需使用封装数据库中表示记录的数据对象即可。
其思想如图2.4所示:
图2.4DAO模式类图
图中BussinessObject是业务对象,是使用DAO模式的客户端;
DataTransferObject数据传输对象,在应用程序不同层次之间传输对象,在一个分布式应用程序中,通常可以提高整理的性能;
DataObjectAcces数据输入/输出对象封装了对数据源的一些基本操作;
DataSource指的是数据源。
可以从图中看出,DAO模式分离了业务逻辑和数据罗即将,是的编写的软件具有良好的层次式体系结构。
本系统为了方便数据库的操作,主要使用DBContent的对象来接一个数据库(建立一个类DBContent),代码如代码1。
2.3系统功能实现
在管理信息系统的生命周期中,仅过了需求分析、系统设计等阶段之后,便开始了系统实施阶段。
在系统分析和设计阶段,系统开发工作主要是集中在逻辑、功能和技术设计上,系统实施阶段要继承此前面各个阶段的工作成果,将技术设计转化为物理实现,因此系统实施的成果是系统分析和设计阶段的结晶。
2.3.1系统登陆页
1.描述:
为了保证系统的安全性,要先使用本系统必须先登陆到系统中。
2.在登陆页面输入用户名和密码以,选择登陆身份后,点击提交按钮,跳转到登陆的service中,在该service中会对用户名,密码,验证码进行判断,并根据相应的用户角色进入对应的页面,代码如代码2。
2.3.2系统主页面
管理员主页面:
左方页面展示了管理员可操作的七大功能,进入相关的管理页面可以链接到子菜单,并且高亮显示,每个管理模块下面都有相应的子菜单。
2.在每个jsp页面将会对相关用户进行拦截操作,这样可以提高安全性,防止用户不经过登陆页面而进入任何子菜单页面,如代码3:
2.3.3教职工信息管理
(1)教职工录入
管理员输入教职工相关正确信息后点击录入按钮,如果是没有输入完整的信息,都会给出相应的错误提示,不能录入成功。
输入数据都通过form表单中定义的方法onsubmit="
returncheckForm()"
来检查,checkForm()函数中是各种的校验输入数据的方式。
2.流程图如下图4所示:
(2)教职工管理
管理员点击左侧的菜单“教职工管理”,页面跳转到做教职工界面,调用后台的servlet类查询所有教职工的信息。
2.教职工管理关键代码如代码4:
2.3.4工资信息管理
(1)工资录入
在此页面主要是输入工资数、奖金等信息,然后选择教职工,所有信息都不能够为空,是否为空也是通过form表单中的onsubmit="
returncheckForm()来检查。
(2)工资信息管理
管理员点击左侧的菜单“工资管理”,页面跳转到工资管理界面,调用后台的gongziServlet类查询出所有的工资信息,并把这些信息封转到数据集合List中,绑定到request对象,然后页面跳转到相应的jsp,显示出来。
2.工资管理关键代码代码5:
(3)修改个人密码
输入用户名和用户的原有密码,输入新密码以后点击修改按钮即可修改密码成功。
(4)安全退出系统
点此按钮回到系统的主页面。
2.关键代码如代码6。
3整体设计方案
4流程图设计
图4教职工录入流程图
5程序设计
代码1:
publicDBContent(){
StringCLASSFORNAME="
com.SqlServer.jdbc.Driver"
;
//连接数据库的驱动
Stringurl="
jdbc:
SqlServer:
//localhost:
3306/jzggl"
Stringuser="
root"
//连接数据库的用户名
Stringpassword="
//连接数据库的密码
try{
Class.forName(CLASSFORNAME);
con=DriverManager.getConnection(url,user,password);
//加载数据库的驱动
stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
}
catch(Exceptionex){
ex.printStackTrace();
}
}
代码2
publicStringlogin(StringuserName,StringuserPw,intuserType)
{
try
{
Thread.sleep(700);
}catch(InterruptedExceptione)
//TODOAuto-generatedcatchblock
e.printStackTrace();
Stringresult="
no"
if(userType==0)//系统管理员登陆
Stringsql="
fromTAdminwhereuserName=?
anduserPw=?
"
Object[]con={userName,userPw};
ListadminList=adminDAO.getHibernateTemplate().find(sql,con);
if(adminList.size()==0)
{
result="
}
else
WebContextctx=WebContextFactory.get();
HttpSessionsession=ctx.getSession();
TAdminadmin=(TAdmin)adminList.get(0);
session.setAttribute("
userType"
0);
session.setAttribute("
admin"
admin);
result="
yes"
if(userType==1)
if(userType==2)
}
returnresult;
代码3
if(session.getAttribute("
user"
)==null)
out.print("
<
script>
alert('
请先登录!
'
);
window.open('
../index.jsp'
'
_self'
)<
/script>
}
代码4
publicvoidjihuayuanAdd(HttpServletRequestreq,HttpServletResponseres)
publicvoidjiaoshiDel(HttpServletRequestreq,HttpServletResponseres)
{
intid=Integer.parseInt(req.getParameter("
id"
));
Stringdel="
Stringsql="
updatet_jiaoshisetdel=?
whereid=?
Object[]params={del,id};
DBmydb=newDB();
mydb.doPstm(sql,params);
mydb.closed();
req.setAttribute("
message"
"
教师信息删除成功!
path"
jiaoshi?
type=jiaoshiMana"
StringtargetURL="
/common/success.jsp"
dispatch(targetURL,req,res);
publicvoidjiaoshiUpd(HttpServletRequestreq,HttpServletResponseres)
Stringgonghao=req.getParameter("
gonghao"
Stringxingming=req.getParameter("
xingming"
Stringxingbie=req.getParameter("
xingbie"
Stringnianling=req.getParameter("
nianling"
Stringshengri=req.getParameter("
shengri"
Stringgongzuo=req.getParameter("
gongzuo"
Stringzhuanye=req.getParameter("
zhuanye"
Stringzhaopian=req.getParameter("
zhaopian"
Stringbeizhu=req.getParameter("
beizhu"
updatet_jiaoshisetgonghao=?
xingming=?
xingbie=?
nianling=?
shengri=?
gongzuo=?
zhuanye=?
zhaopian=?
beizhu=?
Object[]params={gonghao,xingming,xingbie,nianling,shengri,gongzuo,zhuanye,zhaopian,beizhu,id};
教师信息修改成功!
publicvoidjiaoshiAdd(HttpServletRequestreq,HttpServletResponseres)
insertintot_jiaoshi(gonghao,xingming,xingbie,nianling,shengri,gongzuo,zhuanye,zhaopian,beizhu,del)"
+
"
values(?
?
)"
Object[]params={gonghao,xingming,xingbie,nianling,shengri,gongzuo,zhuanye,zhaopian,beizhu,del};
教师信息添加成功!
publicvoidjiaoshiMana(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException
ListjiaoshiList=newArrayList();
Stringsql="
select*fromt_jiaoshiwheredel='
no'
Object[]params={};
mydb.doPstm(sql,params);
ResultSetrs=mydb.getRs();
while(rs.next())
TJiaoshijiaoshi=newTJiaoshi();
jiaoshi.setId(rs.getInt("
jiaoshi.setGonghao(rs.getString("
jiaoshi.setXingming(rs.getString("
jiaoshi.setXingbie(rs.getString("
jiaoshi.setNianling(rs.getString("
jiaoshi.setShengri(rs.getString("
jiaoshi.setGongzuo(rs.getString("
jiaoshi.setZhuanye(rs.getString("
jiaoshi.setZhaopian(rs.getString("
jiaoshi.setBeizhu(rs.getString("
jiaoshiList.add(jiaoshi);
rs.close();
catch(Exceptione)
jiaoshiList"
jiaoshiList);
req.getRequestDispatcher("
admin/jiaoshi/jiaoshiMana.jsp"
).forward(req,res);
代码5
publicvoidgongziAdd(HttpServletRequestreq,HttpServletResponseres)
intjsid=Integer.parseInt(req.getParameter("
jsid"
Stringriqi=req.getParameter("
riqi"
Stringgongzi=req.getParameter("
gongzi"
Stringjiangjin=req.getParameter("
jiangjin"
insertintot_gongzi(jsid,riqi,gongzi,jiangjin)values(?
Object[]params={jsid,riqi,gongzi,jiangjin};
教师工资添加成功"
gongzi?
type=gongziMana"
publicvoidjsList(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Java 教师 档案管理系统 设计 Word