ImageVerifierCode 换一换
格式:DOC , 页数:20 ,大小:2.72MB ,
资源ID:852185      下载积分:20 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 微信支付   
验证码:   换一换

加入VIP,免费下载资源
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.wodocx.com/d-852185.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Java程序设计与大型数据库技术课程设计.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(发送邮件至2622162128@qq.com或直接QQ联系客服),我们立即给予删除!

Java程序设计与大型数据库技术课程设计.doc

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

19、vletRequest httpServletRequest) /*todo: finish this method, this is just the skeleton.*/ return null; public void reset(ActionMapping actionMapping, HttpServletRequest httpServletRequest) public String getDir() return dir; public void setDir(String dir) this.dir = dir; 通过Hibernate对数据库的查询后返回一个ActionF

20、orward对象给控制器,并根据配置文件里的把它的path属性设置为/stu_list.jsp,也就是调用RequestDispatcher.forward()方法定位到资源stu_list.jsp。stu_list.jsp的源代码如下: 利用request对象把forward.java里的一个实现了java.util.List接口的对象传到了stu_list.jsp里,你只需要把里面的对象提取出来送给用户就可以了。与此类似,当用户点击页面上的其他按扭时,控制器将调用相应的Action实例来处理请求。在Action里调用Hibernate来处理数据库事务,最后返回一个ActionForward

21、对象给控制器并定位到特定的资源。 2stuAction用户管理里的另一个ActionstuAction的源代码如下:package com.jufeng.Action;import com.jufeng.ActionForm.*;import org.apache.struts.action.*;import javax.servlet.http.*;import com.jufeng.util.Hibernate;import java.util.List;import com.jufeng.obj.*;import com.jufeng.util.*;public class stuAct

22、ion extends Action public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) /*todo: complete the business logic here, this is just a skeleton.*/ System.out.println(in stuAction); stuActionForm stu

23、ActionForm = (stuActionForm) actionForm; Hibernate hiber=null; User user=null; DepartMent depart=null; String name=,pwd=,born=,mode=,select=; long department=0,id=0; List list=null; Long log=null; name=stuActionForm.getName(); pwd=stuActionForm.getPwd(); department=stuActionForm.getDepartment(); log

24、=new Long(department); born=stuActionForm.getBorn(); mode=stuActionForm.getMode(); hiber=null; hiber=new Hibernate(); list=hiber.ListAll(from User as user order by id); httpServletRequest.setAttribute(list,list); hiber=null; return actionMapping.findForward(stu_list); catch(Exception e) System.out.p

25、rintln(Error 80 in stuAction:+e); if(mode.equals(modify) try hiber= new Hibernate(); user=(User)hiber.load(User.class,new Long(id); hiber=null; hiber=new Hibernate(); httpServletRequest.setAttribute(user,user); httpServletRequest.setAttribute(mode,mode);select=hiber.Select(DEPARTMENT,ID,NAME,user.ge

26、tDepartment().getId().toString(),null); httpServletRequest.setAttribute(depselect,select); catch(Exception e) System.out.println(Error 90 in stuAction:+e); if(mode.equals(modifysave) try hiber= new Hibernate(); user=(User)hiber.load(User.class,new Long(id); hiber=null; hiber=new Hibernate(); user.se

27、tBorn(DateFormat.toDate(born); user.setName(name); user.setPwd(pwd); depart=(DepartMent)hiber.load(DepartMent.class,log); hiber=null; user.setDepartment(depart); hiber=new Hibernate(); private com.jufeng.obj.User stu; private com.jufeng.obj.DepartMent depart; private long id; private long department

28、; public void reset(ActionMapping actionMapping, HttpServletRequest httpServletRequest) this.name=null; this.born=null; this.department=0; this.id=0; this.pwd=null; this.mode=null; public String getName() return name; public void setName(String name) this.name = name; public long getId() return id;

29、public void setId(long id) return department; public void setDepartment(long department) this.department = department; public String getMode() return mode; public void setMode(String mode) this.mode = mode; public com.jufeng.obj.User getStu() throws Exception this.stu=new User(); Hibernate hibernate

30、=new Hibernate(); this.depart=(DepartMent)hibernate.load(DepartMent.class, new Long(this.department); this.stu.setBorn(DateFormat.toDate(this.born); this.stu.setDepartment(this.depart); this.stu.setPwd(this.pwd); this.stu.setId(new Long(this.id); this.stu.setName(this.name); return stu; public void

31、setStu(com.jufeng.obj.User stu) this.stu = stu; 对用户信息进行修改的页面是stu_info.jsp: stu_infofunction check()        对部门进行操作的页面是departlist.jsp: departlist%3departAction departAction是实现部分管理的,当用户点击“新增”时,由控制器分析得出应该将departAction的一个实例分配给这次请求。departAction的代码为:package com.jufeng.Action;impor

32、t com.jufeng.ActionForm.*;import org.apache.struts.action.*;import javax.servlet.http.*;import com.jufeng.util.*;import com.jufeng.obj.*;import java.util.List; public class departAction extends Action /新建操作 if(mode.equals(add) httpServletRequest.setAttribute(mode,mode); return actionMapping.findForw

33、ard(departinfo.jsp);/插入一条记录 if(mode.equals(addsave) depart=new DepartMent(); try depart.setName(Covert.toGBK(name); hiber=new Hibernate(); hiber.save(depart); hiber=null; hiber=new Hibernate(); list=hiber.ListAll(from DepartMent as depart order by id); httpServletRequest.setAttribute(list,list); dep

34、art=null; catch(Exception e) System.out.println(Error 40 in departAction:+e); /删除操作 if(mode.equals(del) try hiber=new Hibernate(); depart=(DepartMent)hiber.load(DepartMent.class,new Long(id); hiber=null; hiber=new Hibernate(); hiber.delete(depart); hiber=null; hiber=new Hibernate(); list=hiber.ListA

35、ll(from DepartMent as depart order by id); httpServletRequest.setAttribute(list,list); catch(Exception e) System.out.println(Error 40 in departAction:+e); return actionMapping.findForward(departlist.jsp); 通过请求的类型处理后返回给用户下一个页面。处理部门信息的页面为departinfo.jsp:departinfofunction check()if(document.frm.name.va

36、lue=) alert(不能有空值!); return false; else return true; private Transaction tx; public Hibernate() throws Exception cfg=new Configuration();/初始化Hibernate的环境 cfg.configure(); factory=cfg.buildSessionFactory(); session=factory.openSession();/获得与数据库对话 public Session getSession() return this.session; public Configuration getCfg() return this.cfg; /向数据库里插入一条记录 public boolean save(Object obj) try

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922