




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
苏 州 市 职 业 大 学实习(实训)报告 名称 项目开发综合实训 图书信息管理系统开发 2012年 6 月 11 日至 2012年6月 21 日共 二 周院 系 计算机工程系 班 级 10软件外包1 学 号 姓 名 徐婷 系主任 李金祥 教研室主任 叶良 指导教师 陈静/朱敏 目 录 一、项目实训的目的与要求11.1 项目实训目的11.2 实训设计要求:1二、题目说明12.1 图书管理系统的背景介绍12.2 开发工具与技术介绍22.2.1 开发及运行环境22.2.2 J2EE简介22.2.3 MYSQL简介3三、总体设计33.1 系统项目规划33.2 系统功能结构图33.3 数据库设计4四、 详细设计54.1 管理员登录页面文件54.2 管理员登录验证页面64.3 图书信息管理主页面64.4 图书信息列表74.5 添加图书信息84.6 删除图书信息104.7 修改图书信息124.8 读者信息列表144.9 添加读者信息144.11 删除读者信息174.12 图书借阅管理184.13 管理员管理20五、开发技巧与实现方法225.1 运用Hibernate技术实现对数据库的操作225. 2 用struts.xml配置文件来处理请求24六、遇到的问题和解决方法24七、项目实训总结25八、参考文献26一、项目实训的目的与要求1.1 项目实训目的通过本次项目实训,可以达到如下的基本要求:(1)了解动态网站的基本概念和相关技术的基础知识。(2)理解网站的设计与规划。(3)理解如何使用JSP和各类数据库开发工具:如MySql来管理、使用数据。(4)了解和掌握Struts,Hibernate,Spring等轻量级的J2EE框架开发工具。(5)能独立完成应用程序的运行环境的设置。1.2 实训设计要求:(1) 学生应充分认识到实训对培养自身能力的重要性,认真做好设计前的各项准备工作。(2) 在实训过程中,要严格要求自己,树立严肃、严密、严谨的科学态度,必须按时、按质、按量完成设计。(3) 独立完成规定的工作任务,不得弄虚作假,不准抄袭他人内容,否则成绩以不及格计。(4) 小组成员之间,既要分工明确,又要保持联系畅通、密切合作,培 养良好的互相帮助和团队协作精神。二、题目说明2.1 图书管理系统的背景介绍随着学校的发展,学生人数日益增多,高校图书馆的管理工作变得烦琐,而传统的人工管理方式已不能满足数量巨大的图书和其借阅信息的管理要求,经详细分析其有如下缺点:图书和学生信息不易维护,数量巨大。查询不方便,借阅和还书速度过慢。各种信息的记录靠手写,数据容易丢失等等。为了弥补上述的缺陷,便于图书的借阅和维护工作,提高借阅和还书的效率,开发出此图书管理系统,以解决效率低下问题,实现图书管理信息化。2.2 开发工具与技术介绍2.2.1 开发及运行环境硬件平台:q CPU:P41.8GHz;q 内存:256MB以上。软件平台:q 操作系统:Windows 7;q 数据库:MYSQL;q JDK1.6及其以上版本;q Web服务器:Tomcat6.0及其以上版本;q 持久层:Hibernate3.0及以上版本;q 开发工具:Eclipse。2.2.2 J2EE简介目前,Java 2平台有3个版本,它们是适用于小型设备和智能卡的Java 2平台Micro版(Java 2 Platform Micro Edition,J2ME)、适用于桌面系统的Java 2平台标准版(Java 2 Platform Standard Edition,J2SE)、适用于创建服务器应用程序和服务的Java 2平台企业版(Java 2 Platform Enterprise Edition,J2EE)。J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如编写一次、随处运行的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。J2EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持Enterprise JavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。2.2.3 MYSQL简介MySQL是一个精巧的SQL数据库管理系统,虽然它不是开放源代码的产品,但在某些情况下你可以自由使用。由于它的强大功能、灵活性、丰富的应用编程接口(API)以及精巧的系统结构,受到了广大自由软件爱好者甚至是商业软件用户的青睐,特别是与Apache和PHP/PERL结合,为建立基于数据库的动态网站提供了强大动力。三、总体设计3.1 系统项目规划图书管理系统是一个小型的JSP数据库开发系统,由系统前台显示模块、系统后台管理模块2部分组成。本人主要完成后台管理员对图书的增删改查功能。系统后台管理模块:q 管理员管理q 图书信息管理q 读者信息管理q 图书借阅管理3.2 系统功能结构图网站后台管理模块,如图3-1。借阅管理读者管理图书管理管理员管理管理员登陆管理端图书管理系统图 3-1 后台模块结构图3.3 数据库设计用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入。收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。本系统主要完成对图书管理系统管理员的登录、管理员的管理、图书信息管理、图书信息浏览、读者信息浏览、读者信息管理、图书借阅信息管理等各项功能,按功能模块分,拟分为以下两个模块:读者信息、图书信息、图书借阅信息。 数据库共有以下数据表:1 管理员表user如表1所示。 表 1管理员表user2 读者表reader如表2所示。 表2友情连接表reader3 图书表book如表3所示。表3站内公告表book4 读者借阅表borrow 如表4所示。 表4读者借阅表borrow四、 详细设计4.1 管理员登录页面文件功能简介:管理员登录。文件login.jsp为管理员登录系统时的页面页面如图4-1 ,帐号为admin, 密码为123。图4-1-1管理员登录页面流程图,如图4-1-2所示图4-1-2相关说明:注册页面login.jsp响应提交请求,将信息提交给user.java,提交到相应的Action来处理请求,最终将user表的信息进行添加。4.2 管理员登录验证页面功能简介:登录验证。当管理员输入的用户名数据库中不存在或输入的密码不匹配时就跳转到该页面。文件error.jsp为管理员登录验证时的页面,如图4-2。图4-2相关代码:public String login() users=userService.list();if(users!=null&user.getPassword().equals(users.get(id).getPassword()return INPUT;else return error1;说明:if语句是用来验证该管理员是否存在以及当该管理员存在时密码是否正确。4.3 图书信息管理主页面功能简介:图书信息系统主页面。index.jsp文件为图书管理系统所显示的主页面,如图4-3图4-34.4 图书信息列表功能简介:列出数据库中存在的所有的图书信息。可以对图书信息进行增删改查操作。book-list.jsp文件为管理员管理图书时所显示的页面,如图4-4图4-4相关代码:书名作者价格描述上架日期删除更新a href=book-delete?id=删除booka href=book-updateInput?id=更新book说明:s:iterator为struts2标签,使用该标签必须在jsp页面中使用来指明。4.5 添加图书信息功能简介:添加图书信息。图书添加信息的内容,如图4-5-1。图4-5-1图书信息成功展示的页面,如图4-5-2。图4-5-2添加图书信息成功返回到图书列表记录的显示,如图4-5-4.图4-5-3添加图书的基本流程,如图4-5-4。图4-5-4相关说明:User-add.jsp将管理员提交上来的新添加的图书信息提交给模型层的book.java进行数的信息的验证,book.java再次提交给bookAction.java,调用bookAction.java中的delete()方法,提交给bookservice.java,再次将操作的信息提交给book表,从而最终完成数据库的操作。public class bookAction extends ActionSupport private List books;private bookService bookService = new bookService(); private book book;private int id;public String list() books = bookService.list();return public class bookAction extends ActionSupport private List books;private bookService bookService = new bookService(); private book book;private int id;public StriSUCCESS;public String add() bookService.add(book);return SUCCESS;4.6 删除图书信息功能简介:删除图书信息。可以将数据库中的该图书信息删除。删除图书信息时确认图书信息的存在,如图4-6-1。图 4-6-1 删除图书信息成功展示的页面,如图4-6-2。图 4-6-2 删除图书信息成功返回到图书列表记录的显示,如图4-6-3。图4-6-3添加图书信息的流程,如图4-6-4。图4-6-4相关说明:User-add.jsp将管理员提交上来的新添加的图书信息提交给模型层的book.java进行数的信息的验证,book.java再次提交给bookAction.java,调用bookAction.java中的add()方法,提交给bookservice.java,再次将操作的信息提交给book表,从而最终完成数据库的操作。4.7 修改图书信息功能简介:修改图书信息。可以对图书的信息进行更新。book-updateInput.jsp文件为修改图书信息所看到的页面,如图4-7。图 4-7-1更新图书信息更新图书信息的流程图,如图 4-7-2图 4-7-2相关代码:inputtype=hidden name=book.id value= /name:input name= value= /author:input name=book.authorvalue= / price:input name=book.price value= /description: d:input name=book.d value= / 说明:通过传送所需修改图书的id来达到更新的目的。User-add.jsp将管理员提交上来的修改的图书信息提交给模型层的book.java进行数的信息的验证,book.java再次提交给bookAction.java,调用bookAction.java中的update()方法,提交给bookservice.java,再次将操作的信息提交给book表,从而最终完成数据库的操作。4.8 读者信息列表功能简介:列出所有读者的信息。可以对读者的信息进行增删改查操作。reader-list.jsp文件为读者信息管理所看到的页面,如图4-8。图4-8 4.9 添加读者信息功能简介:添加图书信息。reader-addInput.jsp文件为添加读者信息所看到的页面,如图4-9-1。图4-9-1 添加读者信息输入的信息的页面,如图4-9-2。图4-9-2添加读者成功的展示的页面,如图4-9-3。图4-9-3添加读者成功后返回读者列表的页面,如图4-9-4。图4-9-4添加读者信息的流程,如图4-9-5。图4-9-5相关说明:reader-addinput.jsp将管理员提交上来的新添加的读者信息提交给模型层的reader.java进行数的信息的验证,readerservice.java中调用public void add(reader c)方法来执行,再交由readerAction.java来进行操作,再次将操作的信息提交给book表,从而最终完成数据库的操作。4.10 修改读者信息功能简介:更新读者信息。可以实现对数据库中读者信息的修改。reader-updateInput.jsp文件为添加读者信息所看到的页面,如图4-10。图4-10-1 修改读者信息的流程,如图4-9-5图4-10-1 修改读者信息流程图相关说明:reader-update.jsp将管理员提交上来的新修改的读者信息提交给模型层的reader.java进行数的信息的验证,readerservice.java中调用public void update (reader c)方法来执行,再交由readerAction.java来进行操作,再次将操作信息提交给book表,从而最终完成数据库的操作。4.11 删除读者信息功能简介:删除读者信息。从数据库中讲该读者的信息删除。reader-delete.jsp文件为删除读者信息所看到的页面,如图4-11。图4-11-1 修改读者信息的流程,如图4-9-5图4-11-2 删除读者信息流程图相关说明:reader-delete.jsp将管理员提交上来的删除的读者信息提交给模型层的reader.java进行数的信息的验证,readerservice.java中调用public void delete (reader c)方法来执行,再交由readerAction.java来进行操作,再次将操作信息提交给book表,从而最终完成数据库的操作。4.12 图书借阅管理功能简介:添加图书借阅信息。当有读者借书时,就将读者的学号和读者所借的书名记录到数据库中,并对读者所借之书进行验证。如果填写的书名数据库中不存在就会跳转到错误页面,否则进入成功页面。borrow-addInput.jsp文件为添加图书借阅信息所看到的页面,如图4-12-1。图4-12-12.添加成功页面显示borrow-add.jsp文件为添加图书借阅信息添加成功所看到的页面,如图4-12-2。图4-12-2 3. 添加成功后查看图书借阅的信息的页面显示borrow-list.jsp文件为图书借阅信息列表,如图4-12-3。图4-12-3 4. 添加失败页面显示error2.jsp文件为图书借阅信息添加失败所看到的页面,如图4-12-4。图4-12-3 相关代码:public String add() flag=borrowService.exists(borrow); if(flag) borrowService.add(borrow); return SUCCESS; else return ERROR;说明:验证输入的书名在数据库中是否存在。4.13 管理员管理功能简介:新增管理员。添加新的管理员,如果输入的用户名数据库中已经存在,就跳转到错误页面,否则就进入成功页面。admin-add.jsp文件为管理员添加新管理员所看到的页面,如图4-13-1所示:图4-13-1 2、添加管理员register.jsp文件为管理员添加新管理员信息所看到的页面,如图4-13-2所示:图4-13-2 3、添加管理员成功book-add.jsp文件为管理员添加新管理员信息成功所看到的页面,如图4-13-3: 图4-13-3 4、添加管理员失败error.jsp文件为管理员添加新管理员信息失败所看到的页面,如图4-13-4所示:图4-13-3 添加管理员信息流程图,如图4-13-4图4-13-4 相关代码:public String add() flag=userService.exists(user); if(flag) return ERROR; else userService.add(user); return SUCCESS; 说明:验证数据库中是否存在所需添加的用户名。五、开发技巧与实现方法以下是本人在开发时所用到的技巧和实现方法。5.1 运用Hibernate技术实现对数据库的操作对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码,通过对hibernate.cfg.xml文件进行一定的配置,来完成与数据库的连接,通过配置映射信息来完成对象以数据库表的映射。具体代码如下: com.mysql.jdbc.Driver jdbc:mysql:/localhost:3306/book root root 1 org.hibernate.dialect.MySQLDialect thread org.hibernate.cache.NoCacheProvider true true update!- 及实现过程为:(1) 读取并解析配置文件(2) 读取并解析配置文件,创建SessionFactory;(3) 打开Session;(4) 创建事物Transation;(5) 持久化操作;(6) 提交事务;(7) 关闭Session;(8) 关闭SessionFactory。5. 2 用struts.xml配置文件来处理请求Struts 2框架本身大致可以分为3个部分:核心控制器FilterDispatcher、业务控制器Action和用户实现的企业业务逻辑组件。核心控制器FilterDispatcher是Struts 2框架的基础,包含了框架内部的控制流程和处理机制。业务控制器Action和业务逻辑组件是需要用户来自己实现的。用户在开发Action和业务逻辑组件的同时,还需要编写相关的配置文件,供核心控制器FilterDispatcher来使用。 Struts 2的工作流程相对于Struts 1要简单,与WebWork框架基本相同,所以说Struts 2是WebWork的升级版本。基本简要流程如下:1、客户端浏览器发出HTTP请求。2、根据web.xml配置,该请求被FilterDispatcher接收。3、根据struts.xml配置,找到需要调用的Action类和方法, 并通过IoC方式,将值注入给Aciton。4、Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。5、Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面。6、返回HTTP响应到客户端浏览器。六、遇到的问题和解决方法问题1:管理员登陆时,密码输入不正确出现了下述错误:图1解决方法:将struts配置文件里的“login”action下的result的名字改成error1。问题2:添加新管理员时,由于数据库中已存在该管理员,应该提示该管理员已存在,然而却添加成功。解决方法:在userService.java文件里添加如下代码:public boolean exists(user b)beforeClass();Session s = sessionFactory.getCurrentSession();s.beginTransaction();long count = (Long)s.createQuery(select count(*) from user u where = :name).setString(name, b.getName().uniqueResult();s.getTransaction().commit();if(count 0) return true;return false;问题3、在userService.java文件里添加如下代码,但是却总保存不到数据库中。public boolean exists(user b)beforeClass();Session s = sessionFactory.getCurrentSession();long count = (Long)s.createQuery(select count(*) fro
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 麻风病防治课件背景
- 二零二五年度金融机构间债券回购合同到期续签标准范本
- 2025版房地产企业法律顾问服务书
- 二零二五年度高级定制成衣采购合同模板
- 2025年环保污水处理设备采购与运行合同
- 2025版房屋漏水检测与修复施工合同
- 2025版广告效果优化居间代理协议书范本
- 二零二五年度风力发电场电力工程合同规范
- 2025版汽车维修服务车辆运输合同示范文本
- 2025年车辆挂靠综合管理服务合同范本
- 理疗店合伙协议合同范本
- 2025年施工员-土建方向-岗位技能(施工员)考试题库
- 教师数字素养提升实施方案
- 2025年度跨境电商平台合作运营合同
- 物业相关法律知识培训
- 2025发展对象培训班考试试题及参考答案
- 呼吸内科专科建设
- 2025年中医执业助理医师考试备考试题及答案解析
- 电气监理工程师培训课件
- 炎症性肠病病人的护理
- 心电图室入科教育
评论
0/150
提交评论