《员工管理系统 J2EE应用架构与Eclipse开发技术课程设计.doc》由会员分享,可在线阅读,更多相关《员工管理系统 J2EE应用架构与Eclipse开发技术课程设计.doc(25页珍藏版)》请在三一办公上搜索。
1、 本科课程设计报告 Course Paper论文编号 Paper No:*撰写日期 Date: 2013-6-5题目:员工管理系统论文类型Paper Type: 课程设计报告论文主题 Subjects Covered: 对象-关系数据库 Object-Relational Databases Web/XML数据管理 Web/XML Data Management 数据仓库与联机分析处理 Data Warehousing & OLAP 数据挖掘与知识发现 Data Mining & Knowledge Discovery 语义Web技术 Semantic Web Technologies课程名称
2、 Course:J2EE应用架构与Eclipse开发技术课程性质 Course No:专业必修课学 分 数 Credits:4(其中实践1学分)主讲教师 Instructor:倪天伟开设系部 College:河海大学文天学院电气信息工程系开设时间 Semester:2012 2013学年第二学期目 录1引言32分析与设计32.1需求分析32.2设计33系统实现 44总结45参考文献4附录一:系统源代码4员工管理系统1 引言本系统的设计目的是将员工管理和显示员工等功能通过网络进行管理,为员工及员工管理人员提供便利。管理员登陆系统后可以对系统进行管理,主要操作是增加、删除、修改、显示员工信息、修改
3、密码。本系统开发用到基础技术:JSP+Servlet;辅助技术:JDBC;开发环境:MySQL,Tomcat,Eclipse;运行环境:JDK。2 分析与设计2.1 分析 2.1.1 功能分析:系统需求如下:系统可以在Windows操作系统下运行,并具有有好的用户界面。系统用户类型:员工、管理员。系统对于一个用户只允许以一种身份登录。进行不登录无法访问的安全设置每一种用户进入系统后均可修改自己的密码,管理员:经过身份验证后可对员工记录进行多种操作员工:经过身份验证后,员工即可查看自己的信息2.1.2 数据分析根据该应用中的实体,属性和实体之间的关系,并画出如下所示的E-R图。 电话身份证电邮地
4、址 姓名 员工 管理用户名 管理员 密码图2-1 员工管理E-R图2.1.3 运行环境分析 1)硬件环境l 处理器: Inter Pentium 166 MX 或更高l 内存: 32Ml 硬盘空间:1GBl 显卡: SVGA显示适配器 2)软件环境l 操作系统: Windows 7l Web服务器:Tomcat 5.xl 数据库:MySQLl 系统开发工具:MyEclipse 5.5l 应用模式:MVC开发模式。2.2 设计2.2.1 系统功能结构设计数据流图由四种基本的元素构成:数据流(Data Flow),处理(Process),数据存储和数据源(数据终点)。数据流(Data Flow):
5、为具有名称且有流向的数据,用标有名称的箭头表示,一个数据可以是记录、组合项或基本项。处理(Process):表示对数据所进行的加工和变换,在图中用矩形框表示。数据存储:表示用文件方式或数据库形式所存储的数据,堆砌进行的存取分别以指向或离开数据存储的箭头表示。数据源及数据终点:表示数据的来源或数据的去向,可以是一个组织或人员,它处于系统范围之外,所以又称它为外部实体,它是为了帮助理解系统界面而引入的,一般只出现在数据流图的起点和终点。该系统数据流图如图所示:管理员接受信息更新 系 统信 息员工信息处理事务用 户信息信息信息查询图2-2 系统数据流程图2.2.2逻辑结构设计在数据库设计中相当重要的
6、一步就是将概念模型转化为计算机上DBMS所支持的数据模型,例如,将E-R图模型转化为关系模型,道理很简单,我们设计概念模型基本上都是一些抽象的关系,在数据库设计的实现过程中,能在计算机上有效地表示出这些关系就成了数据库设计的关键。根据员工档案管理系统的功能要求,选取ODBC作为后台数据库。在上面的实体和实体之间的E-R图设计基础上,形成数据库中的表格及表格之间的关系。表2-1 stufflist表3 系统实现。3.1 环境搭建 在安装和实现J2EE的过程中要正确安装和配置开发环境。(1)下载和安装Java EE 5 SDK 设置环境变量:定义JAVA_HOME环境变量,让它指向J2EE SDK
7、的安装目录。例如:C:SunSDKjdk将JAVA_HOME目录的bin子目录添加到PATH环境变量中。例如:%JAVA_HOME%bin; JAVA测试:在DOS命令下,分别输入 javac 和java,如果出现正确提示信息,说明安装成功。(2)Eclipse安装 下载网址:http:/www.eclipse.org/downloads安装eclipse-SDK-3.2.2-win32.zip和语言包文件NLpack1-eclipse-SDK-3.2-win32。首先必须关闭Eclipse。在Eclipse安装目录下新建languageeclipse目录,并将features和plugins
8、文件存放到新建目录中。在Eclipse安装目录下新建links目录,在其下新建language.start文件,在文件中键入如下一行信息“path=c:Eclipselanguage”。重启Eclipse,此时显示为中文环境,如不全部请删除Eclipse安装目录中的configuration子目录下面的org.Eclipse.pdate目录,以删除原有记录的英文版信息,再重启Eclipse。如需将中文环境再恢复到英文环境,可先为eclipse创建一快捷方式,在后面加上启动参数“-nl en”。(3)MyEclipse安装 安装完毕后,将MyEclipse安装目录下的features和plugi
9、ns目录覆盖到Eclipse的安装目录下。最后,可将安装的MyEclipse卸载,安装完毕。(4) MyElipse 5.1.0-GA注册 运行eclipse,依次点击Window Preferences MyEclipseSubscriptionEnter Subscription. 输入注册名以及注册码,破解完毕。(5)下载和安装Tomcat-5.5.23.ziphttp:/tomcat.apache.org/index.html(6)配置Tomcat的环境变量在“我的电脑”上点右键“属性”“高级” “环境变量(N)”。在系统变量CLASSPATH的值的后面加入:. ;C:apache-t
10、omcat-5.5.23commonlibservlet-api.jar(7)测试tomcat服务器 在浏览器的地址中输入http:/localhost:8080或 http:/127.0.0.1:8080配置端口,可通过修改Tomcat服务器安装目录中conf文件下的主配置文件server.xml来更改端口号(可将端口号更改为8090 、 9090 ) 。3.3系统设计与实现 3.3.1 系统根目录 3.3.2 数据库界面 3.3.3 用户登录界面3.3.4 用户选择界面3.3.5 用户管理界面4 总结各个小组成员做了什么事情,有何收获等5 参考文献1 精通Java EE 项目案例 刘乃丽著
11、 北京:人民邮电出版社 2008.12 Java EE Web开发实例精解 郝玉龙,尹建平 北京:清华大学出版社 2008.33 Java开发与架构 秦京渝著 北京:电子工业出版社,2008.14Java EE实用教程 王映龙,刘春阳等著 北京:清华大学出版社,2011.7附录一:系统源代码DBAgent 类代码(完成与数据库之间的操作)package com;import java.sql.*;import javax.naming.InitialContext;import javax.naming.NamingException;import javax.sql.DataSource;p
12、ublic class DBAgent private Connection conn=null; private void getConnection(String strPoolName) throws SQLException, NamingException InitialContext ctx=new InitialContext(); DataSource ds=(DataSource) ctx.lookup( java:comp/env/+strPoolName); conn=ds.getConnection(); public DBAgent() throws SQLExcep
13、tion,NamingExceptiongetConnection(jdbc/lxy);if(conn=null)System.out.print(初始化数据库连接失败!);elseSystem.out.print(DBAgent 使用一个数据库连接!); public ResultSet getResult(String sql) throws SQLException,NamingException ResultSet rs=null; if(conn=null) return null; Statement stmt=conn.createStatement(); rs=stmt.exe
14、cuteQuery(sql); return rs; public boolean executeSql(String sql) throws SQLException boolean re=true; if(conn=null) return false; Statement stmt=conn.createStatement(); re=stmt.execute(sql); return re; public int executeUpdateSql(String sql) throws SQLException if(conn=null) return 0; Statement stmt
15、=conn.createStatement(); return stmt.executeUpdate(sql); public int insertRecord(String sql,String strField) throws SQLException int mid=-1; if(conn=null) return -1; System.out.println(sql); PreparedStatement ps; String colNames=strField; ps=conn.prepareStatement(sql,colNames); ps.executeUpdate(); R
16、esultSet rs=ps.getGeneratedKeys(); if(rs.next() mid=rs.getInt(1); rs.close(); return mid; public void close()throws SQLException if(conn!=null) conn.close(); System.out.println(DBAgent返还一个数据库连接!); User类(用于封装用户属性)package com;public class User private int iUserID; private String strUser; private Strin
17、g strPswd; private String strName; private String strTel; private String strEmail; private int iIsAdmin; public void setUser( int iUserID, String strUser, String strName, String strPswd, String strTel, String strEmail, int iIsAdmin) this.iIsAdmin=iIsAdmin; this.iUserID=iUserID; this.strEmail=strEmai
18、l; this.strName=strName; this.strPswd=strPswd; this.strTel=strTel; this.strUser=strUser; public int getUserID()return iUserID; public String getUser()return strUser; public String getPswd()return strPswd; public String getName()return strName; public String getTel()return strTel; public String getEm
19、ail()return strEmail; public int getIsAdmin()return iIsAdmin;UserLogin类(用于完成用户登录验证和密码修改)package com;import java.sql.*;public class UserLogin public int login(String strUser,String strPswd,User user) int re=0; DBAgent dba=null; try String sql=select * from stufflist where user=+strUser+; System.out.p
20、rintln(sql); dba=new DBAgent(); ResultSet rs=dba.getResult(sql); if (rs!=null) if (!rs.next() re=1; else if(strPswd.equals(rs.getString(password) user.setUser(rs.getInt(id),rs.getString(user),rs.getString(name),rs.getString(password),rs.getString(tel),rs.getString(email),rs.getInt(isadmin); else re=
21、2; else re=1; catch (Exception e) e.printStackTrace(); finally try if (dba !=null) dba.close(); catch (Exception e) e.printStackTrace(); return re;/修改密码public boolean modifyPswd(String strUser,String strOldPswd,String strNewPswd) boolean re=false;DBAgent dba=null;try String sql=update stufflist set
22、password=+strNewPswd+where user= +strUser+and password +; dba=new DBAgent(); re=dba.executeUpdateSql(sql) 0 ? true : false; catch (Exception e) re =false; e.printStackTrace(); finally try if (dba !=null) dba.close(); catch (Exception e) e.printStackTrace(); return re; StuffAdmin类(用于完成员工管理功能)package
23、com;import java.sql.ResultSet;public class StuffAdmin public int addStuff(User user ) int id=-1; DBAgent dba=null; try dba=new DBAgent(); ResultSet rs=dba.getResult(select * from stufflist where user=+user.getUser()+); if(rs.next() id=-2; else id=dba.insertRecord(insert into stufflist(user,password,
24、name,tel,email,isadmin)+values(+user.getUser()+,+user.getPswd()+,+user.getName()+,+user.getTel()+,+user.getEmail()+,+user.getIsAdmin()+),id); catch(Exception e) e.printStackTrace(); finally try if(dba!=null) dba.close(); catch(Exception e) e.printStackTrace(); return id; public boolean delStuff(int
25、iUserID) boolean re=false; DBAgent dba=null; try dba=new DBAgent(); re=dba.executeUpdateSql(delete from stufflist where id=+iUserID) 0 ? true : false; catch(Exception e) e.printStackTrace(); finally try if(dba!=null) dba.close(); catch(Exception e) e.printStackTrace(); return re; public boolean upda
26、teStuff(User user) boolean re=false; DBAgent dba=null; trydba=new DBAgent(); ResultSet rs=dba.getResult(select * from stufflist where user=+user.getUser()+); if(!(rs.next() re=dba.executeUpdateSql(update stufflist set user=+user.getUser()+,password=+user.getPswd()+,name=+user.getName()+,tel=+user.ge
27、tTel()+,email=+user.getEmail()+,isadmin=+user.getIsAdmin()+where id=+user.getUserID() 0 ? true: false; catch (Exception e) e.printStackTrace(); finally try if(dba!=null) dba.close(); catch(Exception e) e.printStackTrace(); return re; ViewList类(把数据库里的员工信息显示到浏览器)package com;import java.sql.*;import ja
28、va.io.*;import javax.servlet.*;import javax.servlet.http.*;public class ViewList extends HttpServlet public synchronized void service(HttpServletRequest req,HttpServletResponse res) throws IOException, ServletException res.setContentType(text/html;charset=GBK);PrintWriter out = res.getWriter(); Conn
29、ection cn=null;Statement stmt=null;ResultSet rs=null;try Class.forName(com.mysql.jdbc.Driver);String url=jdbc:mysql:/localhost:3306/lxy;String user=root;String password=123456;cn=DriverManager.getConnection(url,user,password);stmt=cn.createStatement();rs=stmt.executeQuery(select * from stufflist);/通
30、过response向客户端应答out.println();out.println();out.println(显示小组);out.println();out.println();out.println(显示);out.println();out.println(iduserpasswordnametelemailisadmin); while(rs.next() out.println(); out.println(+rs.getString(userid)+); out.println(+rs.getString(user)+); out.println(+rs.getString(pswd
31、)+); out.println(+rs.getString(name)+); out.println(+rs.getString(tel)+); out.println(+rs.getString(email)+); out.println(+rs.getString(isadmin)+); out.println(); out.println(); out.println(员工管理); out.println(返回); out.println(); out.println();catch(Exception e)e.printStackTrace();out.println();out.p
32、rintln();out.println(显示小组失败);out.println();out.println();out.println(显示小组失败);out.println(员工管理); out.println(返回); out.println();out.println();finallytryrs.close();stmt.close();cn.close();catch(Exception e)e.printStackTrace();Login.jsp代码 base href= My JSP login.jsp starting page !-员工管理系统function checksubmit() if(form1.user.value=) alert(请输入用户名!); return false; if(form1.pswd.value=) alert(请输入密码!); return false; return true; 用户 密码 Menu.jsp代码