网上书店 软件工程 myeclipse-myeclipse web工程
PAGE 47PAGE 48基于MyEclipse的网上书城系统—前台部分计算机科学与技术 2005级 谭娟摘要:随着互联网的发展,网上购物也凭借其独有的优势普遍为人们所喜爱。你更是可以放心地在网上购书。一个网上书城系统需要实现两部分的功能。消费者可以进行用户注册、用户登录、用户信息管理、书目查询、购书等。而管理员可以录入图书信息、管理订单、管理会员等。JAVA语言是目前Internet上大型的WEB应用程序开发时使用得最热门的编程语言,本系统的实现选用了Myeclipse6.0 、Tomcat6.0 、Oracle 9i等JSP应用开发工具同时也应用相关的Struts框架成功的实现了一个简单的网上购书系统各个功能模块。之所以选择这些工具是基于专业实习时对这些工具的掌握。其中的重点是数据库的实现,特别是各种物理关系和视图关系的实现。关键字:数据库;网上书城;MyEclipseSystem of Online Bookstores Based on MyEclipse--Part of FrontgroundTan Juan Grade 2005 Computer Science and TechnologyAbstract: With the development of Intenet , shopping on-line is becoming popular because of its unique advantage.You can buy book by Intenet at easy. An on-line bookstores system need to achieve two parts of functions . Consumers can register, login in, manage the information, serch book information, buy books and so on. The administrator can entry book information, manage the order, manage membership. JAVA language is the Internet's large-scale development of WEB applications using the most popular programming language, the system selected MyEclipse6.0, Tomcat6.0, Oracle 9i application development tools such as JSP applications at the same time related to Struts framework the successful realization of a simple online book system function modules. The reason that chose these tools is that the master of them when we were in professional practice. The point of the sysytem is the realization of the database, especially the view of various physical relations and the realization of the relationship.Key Words: Database;Bookstores Online;MyEclipse1. 引言1.1开发背景和意义当今世界互联网已经风行,而网上购物也以其独有的优势深受喜爱。
对于消费者来说,可以坐在家里逛街,完全不受时间地域的限制,可以随时买当地买不到的货品,更可以通过网银等方式方便付款。而对于商家来说,又少了由于网上销售没有库存压力、经营成本低、经营规模不受场地限制等,在将来会有更多的企业选择网上销售,通过互联网对市场信息的及时反馈适时调整经营战略,以此提高企业的经济效益和参与国际竞争的能力。所以网上购物已有其不可代替的地位了。而网上购书更是拥有独特的优势,消费都不必担心像买衣服一样会不合身,也不必担心会像买化妆品或者食物一样会买到假冒伪劣产品,因为图书的质量是很表面的东西再加上可以货到付款,消费者更是可以放心购买。现在在我们中间比较常见的有淘宝、卓越、当当,但是却没有这种完全专业的网上图书商城,所以我们就产生了这种设计一个网上购书系统的想法,同时也可以熟悉一下网上购物的前台后台流程。设计网上书店系统同时具有深刻的实践意义和广阔的应用空间。1.2开发工具简介1.2.1 MyEc该系统的实现主要是基于MyEclipse 6.0平台开发的Jsp页面[1]。MyEclipse 6.0 是基于Eclipse的商业开发工具。Eclipse是IBM公司主导下的一款开源免费的可以做基础Java项目开发的工具,然而大多数基于Eclipse二次开发的实用开发工具例如MyEclipse,IBM WSAD,BEA Workshop,Jbuilder 2007 等等都是商业产品,有别于Eclipse自身开放免费的大旗,这些软件不能免费使用,例如MyEclipse 6.0 只有30 天的试用期,过期之后需要付费使用。
因为Java开发工具领域的四分五裂,至今仍然没有一款IDE(Integrated Development Environment,集成开发环境)可以真正媲美微软的Visual Studio系列。MyEclipse 6.0 集中了开源和商业软件的开发支持的大多数框架,方便易用,功能强大,获得了广大开发人员的喜爱。用它来开发比自己下载Eclipse 然后到处找插件安装要方便快捷的多,因此很多企业里面都用它进行实际的开发。它支持开发调试基于Spring, Hibernate, Struts, JSF, JPA, EJB, Web Service 等 Java EE 技术的项目网上书店 软件工程 myeclipse,还支持建模例如UML。除此之外,也可以使用一些开源免费的或者商业的Java开发工具。包括Sun资助的开源免费的Netbeans 6,支持最新的Java EE 5 技术,但是不支持Spring,Hibernate,它的Swing界面设计器和手机可视化开发工具以及JSF可视化工具目前来说处于领先的位置; 免费小巧的Windows 下的开发工具Gel;号称最聪明的Java开发工具――商业软件,比较贵:IntelliJ IDEA 7;另外还有一款Windows下历史悠久的小开发工具,有商业和免费版本,在初学者中比较常见:JCreator;另外还有BEA Workshop,也就是原来的M7,后来被BEA收购了,有免费的JSP编辑器版本,商业版本支持Struts,Spring,Hibernate,说实话这个基于Eclipse的开发工具的可视化程度个人认为是最好的,可是售价也相当的高;WSAD(IBM WebSphere? StudioApplication Developer),现在的新名字是Rational Application Developer for WebSphereSoftware,因为Rational(能想起来的就是ROSE这个UML建模工具)被IBM收购了,商业软件;Oracle则在早期购买了JBuilder的源码,后来推出了免费的JDeveloper,这款软件据说其JSF可视化开发功能和Oracle支持都是非常的棒的。
这么多开发工具,也在一个侧面印证了Java开发工具的混乱以及Java初学者面临的挑战[2]。1.2.2 Oracle数据库我们选用的是Oracle 9i,Oracle是一个对象— 关系型数据库管理系统(ORDBMS),它扩展了普通关系型数据库管理方式,支持面向对象的概念,以表的形式存储信息,维护数据的输入、数据的存储和数据查询并处理及对数据的三种基本操作: 采集、存储、检索[3]。Oracle 9i 包含了一套完整的软件,包括所需的组件、省力的工具、实用程序和主要由DBA使用的管理软件(DBA既代表数据库管理,又代表数据库管理员)。与以前的版本相比,Oracle 9i数据库具有更多适用于Internet的特性。例如,新的XML DB(database,数据库)我在数据库内部提供了一个界面,以便更容易地存储、更新和显示XML格式数据。为了更好地执行Java 应用程序,数据库中的JVM(Java Virtual Machine,Java虚拟机,以前称为Jserver)支持更多的内部Java编程[4]。另外对于大批量的数据导入,我们则是用的Toad for Oracle来导入Exel表。Toad 提供对数据库的快速访问,使用极为方便,用户界面简洁,结构安排合理。
当我们点击一个单独的数据库对象,Toad立即显示此对象的详细信息。对于选择Oracle 9i主要是由于我们在实习的时候学习使用的就是这个工具,也许对于开发这样一个小型的系统没有必要使用这样一个数据库工具,但是为了避免再去使用一个不太熟悉工具的麻烦,Oracle 9i是一个必要的选择。1.2.3 Tomcat而对于网页的发布我们则使用的Tomcat 6.0. Tomcat服务器是一个免费的开放源代码的Web 应用服务器。Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、 HYPERLINK "/view/24856.htm" \t "_blank" Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的 HYPERLINK "/view/25169.htm" \t "_blank" Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用网上书店 软件工程 myeclipse,是开发和调试 HYPERLINK "/view/3387.htm" \t "_blank" JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好 HYPERLINK "/view/28283.htm" \t "_blank" Apache 服务器,可利用它响应对 HYPERLINK "/view/692.htm" \t "_blank" HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行Tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的[5]。 这里的诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。
不过,Tomcat处理静态HTML的能力不如Apache服务器。应用程序访问数据库所使用的接口名称为OracleDriver以及classes12.jar的驱动包,它们已被封装好用来方便的实现数据库和JAVA的连接。1.3 JSP简介JSP(JavaServer Pages)是由Sun Microsystem公司倡导、许多公司参与一起建立的动态网页技术标准。在传统的网页HTML文件中,加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送email等,这些就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,从网络上传送给客户端的仅仅是得到的结果,所以对客户浏览器的要求最低,可以实现无Plugin、无ActiveX,无JavaApplet,甚至无Frame的效果[1]。尽管应用程序开发人员写的是JSP,但最终都要转换成Java Servlet。JSP实现类实际上是JSP的基础Servlet表示。但是实现中增加了语义,满足JSP容器与JSP实现类之间所要的接合协议。
这样,开发人员可以用更适合表示逻辑的元素生成JSP组件[6]。1.4 系统模块简介这是一个我和王颖合作完成的系统,其中前台的与消费者相关的用户部分由我来完成,王颖负责的是后台管理员即商家相关的部分。这其间的数据库关联是比较复杂的,对于这种联系的完成充分让我们意识到了团队合作的重要性。该网上书城系统主要实现的功能模块有:用户注册、用户登录、在线购物、购物车管理、用户信息管理等前台模块,管理员登录、订单管理、管理员对用户的管理、管理员对图书信息的管理包括图书的添加删除等后台模块。经过最后的试用,该设计基本上实现了所需功能,但由于多方面的原因,有一些功能还没有得到实现。虽然我们在尽量做到尽善尽美可是很多细节方面的事情也没有考虑到。由于时间原因,页面做得有点粗糙,内容的显示都信赖于表格,以致于显得不太精致。而有些页面也没有来得及实现,希望以后有机会将其实现。不过对于一般的功能都还是实现了。该项目希望能和众多的db高手和爱好者共同切磋,在实践数据库项目的过程中得到更多的启发。而创业是一个当今社会的一个热门话题,网上开网店更成为了很多商务人士的首选,因为信息传递的快捷和成本的减低,使得网上书店相比以往的书店具有更多的优势。
我们希望通过此项目给更多的创业者带来更多的体验,也希望他们提出项目在商业运作上的合理性的分析,我们会对此加以改进,作出真正实用强大的网上书店系统。2. 系统分析2.1系统需求说明2.1.1需求概述系统达到的功能有:友好的用户界面和后台界面分类查询检索图书的功能方便快捷的注册和登录功能会员(已注册用户)浏览并查看图书详细信息会员购买图书的各个功能会员可修改个人信息和购物车操作会员可查看历史订单和付款和发货信息订单的提交和详细信息记录功能进货和缺货信息管理员可修改用户和图书信息管理员处理订单信息本店公告通知管理员缺货状态索引实现快速图书搜索大批量图书的搜索和分类15.会员对每笔订单有“附言”功能,告知管理员自己的个性需求性能需求:用户对网上书店的性能需求:顺利进行所有交易,可查看修改个人资料,查看历史订单记录,查看付款情况,检索分类的图书,购物时告知图书缺货信息。恪守信用制度和网上书店的相应规则。书店的界面友好,便于购物需求管理员对网上书店的性能需求:方便管理用户和订单信息,管理图书信息,管理仓库和进货信息。数据库访问的高效和便捷。2.1.2 系统面向的用户群体本系统主要面向database爱好者、数据库课程的TA,如果有可能的话,我们也希望该系统能给希望创业的商务人士带来一些帮助。
对于database爱好者:该项目希望能和众多的db高手和爱好者共同切磋,在实践数据库项目的过程中得到更多的启发。对于db课的TA:希望TA能够看到我们对于该课程的热爱和钻研,在一些细节的优化和系统的改进上,也希望网TA能够给予我们宝贵的意见,使我们有更多进步的方向。对于商务人士:创业是一个当今社会的一个热门话题,网上开网店更成为了很多商务人士的首选,因为信息传递的快捷和成本的减低,使得网上书店相比以往的书店具有更多的优势。我们希望通过此项目给更多的创业者带来更多的体验,也希望他们提出项目在商业运作上的合理性的分析,我们会对此加以改进,作出真正实用强大的网上书店系统。2.2 任务目标列表1. 设计合理的E-R图,设计数据库底层逻辑实现的结构。2. 建立数据库表,建立联系,实现网上书店在数据库中基本逻辑。3. 设计网页,并决定使用Tomcat+JSP+Oracle三层架构。4. 逐步完成用户部分的实现(重点)。5. 逐步完成管理员部分的实现(重点)。6. 使用自己写的java程序导入excel文件的大批量图书信息(Toad可导入)。7. 使用index优化大批量数据搜索分类管理。8. 思考和分析数据库中全局事务和局部事务的实现问题。
9.设计CSS,JavaScript优化界面效果。10.对Oracle数据库在该项目的实际使用效果上作出评估。11.思考使用mysql等数据库的实现方案。12.同时学习和借鉴ASP+access或者JSP+sqlserver等架构的系统实现。13.开启tomcat服务器,在局域网中进公测。14.近期实现在面试中未实现的访问量统计功能,更人性化。15.结合数据库课程的知识分析表和关系的合理性。2.3 系统定义2.3.1系统边界粗略描述系统应处理的数据及数据间关系。大致应处理的数据有:会员注册数据:包括用户编号用户名密码和注册时间IP等个人详细信息。会员收藏图书数据:使用购物车功能处理用户收藏的图书信息。会员购书数据:包括购书的本书单价总价和根据积分得出的VIP价格和会员是否付款和发货的信息。图书数据:包括图书编号,作者出版社和会员价VIP优惠价图片等信息。角色权限数据:包括会员和后台管理员的信息。积分数据:根据购货和历史订单信息计算积分信息。库存数据:包括进货数量信息购货数量和缺货状态等。搜索数据:关键字的搜索功能。翻页数据:根据每页的定义条目进行翻页功能的实现。订单数据:订单是否付清和发货以及时间客户和所订图书信息。
数据间的大致关系:会员数据对应的购买图书数据联系了订单信息,角色数据对应各自的操作等数据。购买图书本书和价格数据联系会员积分数据和VIP价格数据等。2.3.2 用户视图用户视图的概念:E-R模型是以“实体”的概念为基础,实体及实体之间的联系被认为是E-R模型的元,这些元被E-R模型所称为的用户视图,它用来解释、指定、和 HYPERLINK "/WebForms/WebDefines.aspx?searchword=%e6%95%b0%e6%8d%ae%e5%ba%93" 数据库处理系统的需求并使之文档化。在网上书店系统的实现上,用户视图包含了一下一些元,如bookclass,purchase,indentlist,order等。3. 系统设计图3.1是我们的E-R模型。图3.1 E-R模型系统功能模块如图3.2所示:顾客登录顾客登录自动生成缺书报告生成定购报告查询系统返回结果管理员登录报告管理数据库管理 用户管理定购注册图3.2 系统功能模块3.1 实体实体1(my_book)实体描述:图书信息,属性说明如表3.1:表3.1 Mybook表序号中文名称英文名称数据类型约束是否为主键1图书编号idnumberNOT NULL是2书名booknameVarchar2NOT NULL否3图书类别bookclassVarchar2NOT NULL否4作者authorVarchar2无否5出版社publishVarchar2无否6ISBNbooknonumber无否7图书内容contentVarchar2无否8会员价pricefloat无否9Vip价discountFloat无否10总数amountnumber无否11库存量leav_numbernumber无否12添加时间reg_timedateNOT NULL否13图片路径picVarchar2无否表参与的联系如表3.2所示:表3.2 Mybook表参与的联系序号中文名称英文名称用途及含义所关联的其它实体基数1图书编号id标识图书my_indentlist0,nwarehouse0,n实体2(My_BookAdminuser)表示的是管理员的信息,如表3.3:表3.3 My_BookAdminuser表列序号中文名英文名数据类型精度范围能否为空约束条件是否为键属性1管理员用户名AdminUserVarchar2无否无否2管理员密码AdminPassVarchar2无否Size