Java程序设计与大型数据库技术课程设计.doc
《Java程序设计与大型数据库技术课程设计.doc》由会员分享,可在线阅读,更多相关《Java程序设计与大型数据库技术课程设计.doc(20页珍藏版)》请在沃文网上搜索。
1、目录1需求分析1.1运行环境1.2功能需求2数据库设计2.1部门表2.2用户表3界 面 设 计3.1菜单界面风格3.2用户管理风格4程 序 设 计5总结需求分析在这个例子里,主要包含两个部分:用户管理和部门管理。部门管理主要完成部门的管理,以便于用户在添加新用户时确定其所在的部门。部门的属性比较简单。在用户管理里主要提供给管理人员管理系统的用户功能,用于确定用户的一些属性,比如:用户的名字、所在的部门、出生日期等。 运行环境 JBoss3.2 (到下载),请解压到d:jboss; Oracle9i; Jbuilderx; Hibernate的开发包(到http:/www.hibernate.o
2、rg下载); JDK1.4及其以上版本。下面让我们来配置JBoss,用以让它能支持Hibernate:把从网上下载的Hibernate开发包解压后,在根目录下(请解压到D:hibernate-2.1)找到hibernate2.jar文件,将其拷贝到JBoss的D:jbossserverdefaultlib(我的jboss目录)下,然后进入D:hibernate-2.1lib打开README.txt,把里面带required关键字的包全部拷贝到D:jbossserverdefaultlib下,然后用Ctrl+C关闭JBoss。接下来就准备用Jbuilderx开发你的项目了。启动Jbuilderx
3、并进行如下的配置:添加Oracle的驱动和Hibernate的开发包。由于操作比较简单,请读者自己配置(即将Oracle自带的classes12.jar和hibernate2.jar这两个文件加入到Jbuilderx的库里)。 功能需求在这个用户管理模块中,要求管理人员能够添加部门,能够添加、修改、删除用户,用户信息必须包含ID、登录名、密码、出身日期、所在的部门,部门信息只有ID、名称。当删除一个部门后,属于它的所有用户将被删除。 模块总体结构 数据库设计由于我们只是提供一个简单的实例,因此没有考虑数据库性能问题。在实际的项目中应该建立索引,该使用触发器和存储器的地方一定要使用,以便提高系统
4、的性能。部门表请先建立一个名称和密码都为oa的用户,并且表空间为OASYSTEM,他应该有DBA的权限,CREATE TABLE OA.DEPARTMENT (ID VARCHAR2(40 byte) NOT NULL, NAME VARCHAR2(40 byte), CONSTRAINT SYS_C002992 PRIMARY KEY(ID) USING INDEX TABLESPACE OASYSTEM STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FRE
5、ELIST GROUPS 1) PCTFREE 10 INITRANS 2 MAXTRANS 255) TABLESPACE OASYSTEM PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1) LOGGING 字段说明如表所示。 用户表用户表的程序代码如下所示:CREATE TABLE OA.T_USER (ID VARCHAR2(40
6、 byte) NOT NULL, PWD VARCHAR2(32 byte), NAME VARCHAR2(256 byte), BORN DATE, DEPART_ID VARCHAR2(40 byte), CONSTRAINT SYS_C002994 PRIMARY KEY(ID) USING INDEX TABLESPACE OASYSTEM STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1) PCTFREE 10 INI
7、TRANS 2 MAXTRANS 255, CONSTRAINT SYS_C002995 FOREIGN KEY(DEPART_ID) REFERENCES OA.DEPARTMENT(ID) ON DELETE CASCADE) TABLESPACE OASYSTEM PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1) LOGGING
8、字段说明如表所示界 面 设 计 菜单界面风格用户管理菜单界面如图所示 用户管理风格用户管理界面分别如图1和图2所示。图1 图2程 序 设 计 建立名为com.jufeng.Action的包,把所有的Action都放到这个包里。在这个例子里,我们一共有3个Action文件:forward、stuAction和departAction。1forwardforward.java用来路由用户请求的模块。当用户点击菜单上的部门管理或用户管理时,一次请求被提交。truts1.1的控制器(ActionServlet和RequestProcessor)通过一系列的动作来处理这个请求,我们将在下面简单讨论这个过
9、程。 因为Struts是MVC模式的一种具体实现,所以首先让我们来看一看MVC里的控制器要完成的功能:(1) 截获一个用户的请求;(2) 把请求转化成一个商务逻辑和执行;(3) 帮助选择一个展现给用户的视图;(4) 返回视图给用户。 下面让我们来看一看Struts1.1的处理:(1)调用ActionServlet的process(.)方法。(2)在process(.)里selectApplication()方法被调用。这个方法将存储恰当的Application-Config和MessageResources对象到Request对象里,像一个普通的Servelet一样,ActionServlet
10、被装载时它的init()方法将被调用,在这个过程里完成一些对象的创建并放到一定的范围里。如果你的项目用到了Struts的数据库连接池,则它的初始化也是在这个过程里完成的。 (3) 调用RequestProcessor的init()。(4) 调用processMultipart(),如果请求的类型是post并且ContentType是multipart/form- data,也就是有文件类型时,那么Request就被包装成一个特殊的Request。(5) 调用processPath():从URL中决定路径组件。(6) 调用processLocal():处理本地的请求。(7) 调用processC
11、ontent()。(8) 调用 processNoCache()。 (9) 调用 processPreprocess():决定是否继续处理request。(10) 调用processMapping():决定ActionMapping对象。(11) 调用processActionForm():决定是否有一个ActionForm被配置给了Action- Mapping,如果有的话,就生成或重用一个ActionForm再调用reset()方法。(12) 调用processPopulate():如果为ActionMapping配置了ActionForm的话,就从request中提取参数。 (13) 调
12、用processValidate():如果ActionForm的validate属性被设成true的话,那么就调用ActionForm的validate();如果用户的输入是非法的话,就产生一个ActionErrors对象并放到request对象中,且跳到用input属性指定的资源里。(14) 判断是否有一个forward或include属性被配置给mapping,如果有的话,就调用forward()或include()方法。(15) 调用processActionCreate():创建和获得一个Action实例来处理request。 注意,Struts只为每一种Action产生一个实例。(1
13、6) 调用processActionPerform():调用Action实例里的execute()方法。 (17) 调用processActionForward():它用在execute()返回的ActionForward对象,来决定下一个资源的定位。 因为菜单上的用户管理连接的Action为: /deep/forward.do?dir=stu_list配置文件里有相应的Actionmapping来映射用户的URL: 所以,Struts的控制器处理时,它会用com.jufeng.Action.forward的一个实例来处理这个请求,并用com.jufeng.ActionForm.forward
14、ActionForm的一个实例来提取连接字符串里的属性。com.jufeng.Action.forward.java的源代码如下: package com.jufeng.Action;import com.jufeng.ActionForm.*;import org.apache.struts.action.*;import javax.servlet.http.*;import com.jufeng.util.*;import java.util.List;public class forward extends Action public ActionForward execute(Act
15、ionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) /*todo: complete the business logic here, this is just a skeleton.*/ forwardActionForm forwardActionForm = (forwardActionForm) actionForm; String dir=; List list=null; dir
16、=forwardActionForm.getDir(); if(dir.equals(stu_list) try Hibernate hibernate=new Hibernate(); list=hibernate.ListAll(from User as user order by id); httpServletRequest.setAttribute(list,list); return actionMapping.findForward(stu_list.jsp); catch(Exception e) System.out.println(in forward action+e);
17、 if(dir.equals(departlist) try Hibernate hibernate=new Hibernate(); list=hibernate.ListAll(from DepartMent as depart order by id); httpServletRequest.setAttribute(list,list); return actionMapping.findForward(departlist.jsp); catch(Exception e) System.out.println(in forward action+e); return actionMa
18、pping.findForward(stu_list.jsp); 与此对应的ActionForm是:forwardActionForm.java。package com.jufeng.ActionForm;import org.apache.struts.action.*;import javax.servlet.http.*;public class forwardActionForm extends ActionForm private String dir; public ActionErrors validate(ActionMapping actionMapping, HttpSer
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 程序设计 大型 数据库技术 课程设计
