Java EE课程设计.docx
《Java EE课程设计.docx》由会员分享,可在线阅读,更多相关《Java EE课程设计.docx(34页珍藏版)》请在冰豆网上搜索。
![Java EE课程设计.docx](https://file1.bdocx.com/fileroot1/2023-1/10/4cf2d89d-72cc-48db-89d4-d5176961d3fe/4cf2d89d-72cc-48db-89d4-d5176961d3fe1.gif)
JavaEE课程设计
本科课程设计报告CoursePaper
论文编号PaperNo:
**
撰写日期Date:
2013-6-5
题目:
员工管理系统
论文类型PaperType:
课程设计报告
论文主题SubjectsCovered:
□对象-关系数据库Object-RelationalDatabases
■Web/XML数据管理Web/XMLDataManagement
□数据仓库与联机分析处理DataWarehousing&OLAP
□数据挖掘与知识发现DataMining&KnowledgeDiscovery
□语义Web技术SemanticWebTechnologies
课程名称Course:
J2EE应用架构与Eclipse开发技术
课程性质CourseNo:
专业必修课
学分数Credits:
4(其中实践1学分)
主讲教师Instructor:
倪天伟
开设系部College:
河海大学文天学院电气信息工程系
开设时间Semester:
2012~2013学年第二学期
员工管理系统
1引言
本系统的设计目的是将员工管理和显示员工等功能通过网络进行管理,为员工及员工管理人员提供便利。
管理员登陆系统后可以对系统进行管理,主要操作是增加、删除、修改、显示员工信息、修改密码。
本系统开发用到基础技术:
JSP+Servlet;辅助技术:
JDBC;开发环境:
MySQL,Tomcat,Eclipse;运行环境:
JDK。
2分析与设计
2.1分析
2.1.1功能分析:
系统需求如下:
系统可以在Windows操作系统下运行,并具有有好的用户界面。
系统用户类型:
员工、管理员。
系统对于一个用户只允许以一种身份登录。
进行不登录无法访问的安全设置
每一种用户进入系统后均可修改自己的密码,
管理员:
经过身份验证后可对员工记录进行多种操作
员工:
经过身份验证后,员工即可查看自己的信息
2.1.2数据分析
根据该应用中的实体,属性和实体之间的关系,并画出如下所示的E-R图。
图2-1员工管理E-R图
2.1.3运行环境分析
1)硬件环境
●处理器:
InterPentium166MX或更高
●内存:
32M
●硬盘空间:
1GB
●显卡:
SVGA显示适配器
2)软件环境
●操作系统:
Windows7
●Web服务器:
Tomcat5.x
●数据库:
MySQL
●系统开发工具:
MyEclipse5.5
●应用模式:
MVC开发模式
。
2.2设计
2.2.1系统功能结构设计
数据流图由四种基本的元素构成:
数据流(DataFlow),处理(Process),数据存储和数据源(数据终点)。
数据流(DataFlow):
为具有名称且有流向的数据,用标有名称的箭头表示,一个数据可以是记录、组合项或基本项。
处理(Process):
表示对数据所进行的加工和变换,在图中用矩形框表示。
数据存储:
表示用文件方式或数据库形式所存储的数据,堆砌进行的存取分别以指向或离开数据存储的箭头表示。
数据源及数据终点:
表示数据的来源或数据的去向,可以是一个组织或人员,它处于系统范围之外,所以又称它为外部实体,它是为了帮助理解系统界面而引入的,一般只出现在数据流图的起点和终点。
该系统数据流图如图所示:
2.2.2逻辑结构设计
在数据库设计中相当重要的一步就是将概念模型转化为计算机上DBMS所支持的数据模型,例如,将E-R图模型转化为关系模型,道理很简单,我们设计概念模型基本上都是一些抽象的关系,在数据库设计的实现过程中,能在计算机上有效地表示出这些关系就成了数据库设计的关键。
根据员工档案管理系统的功能要求,选取ODBC作为后台数据库。
在上面的实体和实体之间的E-R图设计基础上,形成数据库中的表格及表格之间的关系。
表2-1stufflist表
3系统实现。
3.1环境搭建
在安装和实现J2EE的过程中要正确安装和配置开发环境。
(1)下载和安装JavaEE5SDK
–设置环境变量:
定义JAVA_HOME环境变量,让它指向J2EESDK的安装目录。
例如:
C:
\Sun\SDK\jdk
将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安装目录下新建language\eclipse目录,并将features和plugins文件存放到新建目录中。
在Eclipse安装目录下新建links目录,在其下新建language.start文件,在文件中键入如下一行信息“path=c:
\\Eclipse\\language”。
重启Eclipse,此时显示为中文环境,如不全部请删除Eclipse安装目录中的configuration子目录下面的org.Eclipse.pdate目录,以删除原有记录的英文版信息,再重启Eclipse。
如需将中文环境再恢复到英文环境,可先为eclipse创建一快捷方式,在后面加上启动参数“-nlen”。
(3)MyEclipse安装
–安装完毕后,将MyEclipse安装目录下的features和plugins目录覆盖到Eclipse的安装目录下。
最后,可将安装的MyEclipse卸载,安装完毕。
(4)MyElipse5.1.0-GA注册
–运行eclipse,依次点击Window→Preferences→MyEclipse→Subscription→EnterSubscription.
–输入注册名以及注册码,破解完毕。
(5)下载和安装Tomcat-5.5.23.zip
http:
//tomcat.apache.org/index.html
(6)配置Tomcat的环境变量
在“我的电脑”上点右键—>“属性”—>“高级”—>“环境变量(N)”。
在系统变量CLASSPATH的值的后面加入:
.;C:
\apache-tomcat-5.5.23\common\lib\servlet-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]精通JavaEE项目案例刘乃丽著北京:
人民邮电出版社2008.1
[2]JavaEEWeb开发实例精解郝玉龙,尹建平北京:
清华大学出版社2008.3
[3]Java开发与架构秦京渝著北京:
电子工业出版社,2008.1
[4]JavaEE实用教程王映龙,刘春阳等著北京:
清华大学出版社,2011.7
附录一:
系统源代码
DBAgent类代码(完成与数据库之间的操作)
packagecom;
importjava.sql.*;
importjavax.naming.InitialContext;
importjavax.naming.NamingException;
importjavax.sql.DataSource;
publicclassDBAgent{
privateConnectionconn=null;
privatevoidgetConnection(StringstrPoolName)throwsSQLException,
NamingException{
InitialContextctx=newInitialContext();
DataSourceds=(DataSource)ctx.lookup("java:
comp/env/"+strPoolName);
conn=ds.getConnection();
}
publicDBAgent()throwsSQLException,NamingException{
getConnection("jdbc/lxy");
if(conn==null)
System.out.print("初始化数据库连接失败!
");
else
System.out.print("DBAgent使用一个数据库连接!
");
}
publicResultSetgetResult(Stringsql)throwsSQLException,NamingException{
ResultSetrs=null;
if(conn==null)
returnnull;
Statementstmt=conn.createStatement();
rs=stmt.executeQuery(sql);
returnrs;
}
publicbooleanexecuteSql(Stringsql)throwsSQLException{
booleanre=true;
if(conn==null)
returnfalse;
Statementstmt=conn.createStatement();
re=stmt.execute(sql);
returnre;
}
publicintexecuteUpdateSql(Stringsql)throwsSQLException{
if(conn==null)
return0;
Statementstmt=conn.createStatement();
returnstmt.executeUpdate(sql);
}
publicintinsertRecord(Stringsql,StringstrField)throwsSQLException{
intmid=-1;
if(conn==null){
return-1;
}
System.out.println(sql);
PreparedStatementps;
String[]colNames={strField};
ps=conn.prepareStatement(sql,colNames);
ps.executeUpdate();
ResultSetrs=ps.getGeneratedKeys();
if(rs.next())
mid=rs.getInt
(1);
rs.close();
returnmid;
}
publicvoidclose()throwsSQLException{
if(conn!
=null)
{
conn.close();
System.out.println("DBAgent返还一个数据库连接!
");
}
}
}
User类(用于封装用户属性)
packagecom;
publicclassUser{
privateintiUserID;
privateStringstrUser;
privateStringstrPswd;
privateStringstrName;
privateStringstrTel;
privateStringstrEmail;
privateintiIsAdmin;
publicvoidsetUser(
intiUserID,
StringstrUser,
StringstrName,
StringstrPswd,
StringstrTel,
StringstrEmail,
intiIsAdmin)
{
this.iIsAdmin=iIsAdmin;
this.iUserID=iUserID;
this.strEmail=strEmail;
this.strName=strName;
this.strPswd=strPswd;
this.strTel=strTel;
this.strUser=strUser;
}
publicintgetUserID(){returniUserID;}
publicStringgetUser(){returnstrUser;}
publicStringgetPswd(){returnstrPswd;}
publicStringgetName(){returnstrName;}
publicStringgetTel(){returnstrTel;}
publicStringgetEmail(){returnstrEmail;}
publicintgetIsAdmin(){returniIsAdmin;}
}
UserLogin类(用于完成用户登录验证和密码修改)
packagecom;
importjava.sql.*;
publicclassUserLogin{
publicintlogin(StringstrUser,StringstrPswd,Useruser){
intre=0;
DBAgentdba=null;
try{
Stringsql="select*fromstufflistwhereuser='"+strUser+"'";
System.out.println(sql);
dba=newDBAgent();
ResultSetrs=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=2;
}
}else
re=1;
}catch(Exceptione){
e.printStackTrace();
}finally{
try{
if(dba!
=null)
dba.close();
}catch(Exceptione){
e.printStackTrace();
}
}
returnre;
}
//修改密码
publicbooleanmodifyPswd(StringstrUser,StringstrOldPswd,StringstrNewPswd){
booleanre=false;
DBAgentdba=null;
try{
Stringsql="updatestufflistsetpassword='"+strNewPswd+"'whereuser='"+strUser+"'andpassword'"+"'";
dba=newDBAgent();
re=dba.executeUpdateSql(sql)>0?
true:
false;
}catch(Exceptione){
re=false;
e.printStackTrace();
}finally{
try{
if(dba!
=null)
dba.close();
}catch(Exceptione){
e.printStackTrace();
}
}
returnre;
}
}
StuffAdmin类(用于完成员工管理功能)
packagecom;
importjava.sql.ResultSet;
publicclassStuffAdmin{
publicintaddStuff(Useruser){
intid=-1;
DBAgentdba=null;
try{
dba=newDBAgent();
ResultSetrs=dba.getResult("select*fromstufflistwhereuser='"+user.getUser()+"'");
if(rs.next())
id=-2;
else
id=dba.insertRecord("insertintostufflist(user,password,name,tel,email,isadmin)"+"values('"+user.getUser()+"','"+user.getPswd()+"','"+user.getName()+"','"+user.getTel()+"','"+user.getEmail()+"','"+user.getIsAdmin()+")","id");
}catch(Exceptione){
e.printStackTrace();
}finally{
try{
if(dba!
=null)
dba.close();
}catch(Exceptione){
e.printStackTrace();
}
}
returnid;
}
publicbooleandelStuff(intiUserID){
booleanre=false;
DBAgentdba=null;
try{
dba=newDBAgent();
re=dba.executeUpdateSql("deletefromstufflistwhereid="+iUserID)>0?
true:
false;
}catch(Exceptione){
e.printStackTrace();
}finally{
try{
if(dba!
=null)
dba.close();
}catch(Exceptione){
e.printStackTrace();
}
}
returnre;
}
publicbooleanupdateStuff(Useruser){
booleanre=false;
DBAgentdba=null;
try{dba=newDBAgent();
ResultSetrs=dba.getResult("select*fromstufflistwhereuser='"+user.getUser()+"'");
if(!
(rs.next()))
re=dba.executeUpdateSql("updatestufflistsetuser='"+user.getUser()+"',password='"+user.getPswd()+"',name='"+user.getName()+"',tel='"+user.getTel()+"',email='"+user.getEmail()+"',isadmin='"+user.getIsAdmin()+"whereid="+user.getUserID())>0?
true:
false;
}catch(Exceptione){
e.printStackTrace();
}finally{
try{
if(dba!
=null)
dba.close();
}catch(Exceptione){
e.printStackTrace();
}
}
returnre;
}
}
ViewList类(把数据库里的员工信息显示到浏览器)
packagecom;
importjava.sql.*;
importjava.io.*;
importjavax.servlet.*;
importjavax.servlet.http.*;
publicclassViewListextendsHttpServlet{
publicsynchronizedvoidservice(HttpServletRequestreq,
HttpServletResponseres)throwsIOException,ServletException{res.setContentType("text/html;charset=GBK");
PrintWriterout=res.getWriter();
Connectioncn=null;
Statementstmt=null;
ResultSetrs=null;
try{
Class.forName("com.mysql.jdbc.Driver");
Stringurl="jdbc:
mysql:
//localhost:
3306/lxy";
Stringuser="root";
Stringpassword="123456";
cn=DriverManager.getConnection(url,user,password);
stmt=cn.createStatement();
rs=stmt.executeQuery("select*fromstufflist");
//通过response向客户端应答
out.println("");
out.println("
");
out.println("
显示小组");
out.println("");
out.println("
");
out.print