Oracle9i数据库系统课程设计——网上书店系统毕业论文.doc_第1页
Oracle9i数据库系统课程设计——网上书店系统毕业论文.doc_第2页
Oracle9i数据库系统课程设计——网上书店系统毕业论文.doc_第3页
Oracle9i数据库系统课程设计——网上书店系统毕业论文.doc_第4页
Oracle9i数据库系统课程设计——网上书店系统毕业论文.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计报告课 程 名 称 Oracle9i数据库系统课程设计课程设计题目 网上书店系统 网上书店系统1、 课程设计背景与目的1.1 背景随着Internet国际互联网的发展,越来越多的企业开始建造自己的网站。基于Internet的信息服务,商务服务已经成为现代企业一项不可缺少的内容。很多企业都已不满足于建立一个简单的仅仅能够发布信息的静态网站。现代企业需要的是一个功能强大的,能提供完善的电子商务服务的动态商务网站。同时人们的生活方式也在随着发生改变,传统的购物方式已不能满足人们的需求。 JSP是Sun公司推出的一种网站开发技术。 JSP即Java Server Page,它可以在Servlet和JavaBean的支持下,完成功能强大的Web应用程序。所以,在我们这次课程设计中,我们采用了JSP作为开发工具,构建了一个能实现基本的电子商务的小型动态商务网站网上图书销售系统。该系统能实现用户的注册、登录功能;能够实现商品的查询,订购等功能。该系统基本上具备一个网上商品销售系统应该具备的常用功能,该设计项目基本上体现了构建一个动态商务网站所需要的技术,可以说,目前的大型商务网站也就是我们这个小型网站在内容上的扩充和完善。1.2 目的本系统的目的是实现一个完整的电子商务网站,用于书籍商品的展示和销售。采用JSP和oracle数据库作为开发工具,构建了一个能实现基本的电子商务的小型动态商务网站网上图书销售系统。该系统要能实现用户的注册、登录功能;能够实现商品的查询,订购等功能。2、 课程设计题目描述和要求本系统主要实现以下两方面的功能:一是客户在网上查书、选书、购书和产生订单等功能。二是后台的图书管理功能,包括图书种类的管理和图书的管理。具体划分的模块有:图书查询、购物车管理、订单管理、会员管理、图书管理等。 硬件环境: 128M以上内存 10G以上硬盘空间VGA高分辨率显示器键盘及鼠标输入设备 软件环境: 操作系统为: WIN98,WIN2000,WINXP 软件开发工具: Eclipse,Tomcat,Oracle9i3、 课程设计报告内容3.1 系统设计目标对于典型的数据库管理系统,尤其是对像电子商务这样的数据流量特别大的网络管理系统,必须要满足使用方便、操作灵活等设计要求。本系统在设计时应该满足以下几个目标:l 采用人机对话的操作方式,界面设计美观友好、信息查询灵活、方便、快捷、准确、数据存储安全可靠。l 全面展示书店内所有的图书,并可展示最新图书及特价图书。l 为顾客提供一个方便、快捷的图书信息查询功能。采用模糊查询查询数据。l 实现网上购物。l 商品销售排行,以方便顾客了解本商城内的热销商品及帮助企业领导者做出相应的决策。l 查看商城内的公告信息。l 用户随时都可以查看自己的订单。l 对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误。l 系统最大限度地实现了易维护性和易操作性。l 系统运行稳定、安全可靠。3.2 系统基本功能1)图书信息查询该模块实现图书信息的分类显示,提供最新商品的推荐显示以及销售显示,便于引导购物取向。此外,还提供依据图书名称或是编号等包含关键字实现快速搜索的功能并显示图书的有关详细信息。2)购物车管理用于对每一个进入系统的用户所对应的购物车进行管理。将用户所选购的图书信息,包括价格、数量等信息记录到对应的购物车上,便于到收银台进行结帐处理。同时在此模块中,用户还可以方便的实现修改购物图书、清空购物车等操作。3)会员信息管理实现系统相关用户信息的注册及身份验证,同时也提供对应的用户资料的更新。该系统可以收集用户相关的联系方式、通讯地址等信息。4)订单处理根据购物车中的信息,以及用户所选择的送货方式和付款方式,和用户对应的个人信息生成订单,便于后续工作的处理。在该模块中,用户可以随时查阅自己的订单,并对其进行取消等处理操作。3.3 数据库需求分析以下是数据库需求信息:u 一个用户可以购买多本图书。u 一个用户对应一张订单。u 一个列表对应多张订单。u 用户,包括数据项:用户ID、用户名、密码。u 图书,包括数据项:图书编号、图书名、价格、出版社、图书介绍。u 订单列表,包括数据项:订单编号、图书编号、购书数量。u 订单,包括数据项:订单编号、用户编号、下单时间。3.4 数据库设计数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率,以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。3.5 数据库需求分析针对网上图书销售系统的需求分析,得出如下需求信息。订单分为单张详细订单和总订单。 一个用户可以购买多本图书。 一个用户对应一张订单。 一个列表对应多张订单。针对本系统功能分析,总结出如下的需求信息。 用户,包括数据项:用户ID、用户名、密码。 图书,包括数据项:图书编号、图书名、价格、图书介绍。 订单列表,包括数据项:订单编号、图书编号、购书数量。 订单,包括数据项:订单编号、用户编号、下单时间。3.6 数据库概念结构设计从本系统中规划出的实体有:用户信息实体、管理员信息实体、图书实体、图书分类实体、订单实体、订单列表实体。实体之间关系的E-R图如图4.5所示。MN管理员用户购书订单列表订单图书图书分类11NN11 图3.6.1 实体之间的E-R图 管理员实体的E-R图,如图3.6.2所示。 图书分类实体的E-R图,如图3.6.3所示。用户信息实体的E-R图,如图3.6.4所示。图书实体的E-R图,如图3.6.5所示。订单实体的E-R图,如图3.6.6所示。订单列表实体的E-R图,如图3.6.7所示。管理员用户名密码图书分类分类名称分类编号 图3.6.2 管理员实体的E-R图 图3.6.3 图书分类实体E-R图 用 户用户名密码地址电话邮编Email登录次数图 3.6.4用户实体E-R图 图 书 图书编号图书名称分类编号封面作者出版社内容介绍总数量剩余数量价格 图3.6.5图书实体E-R图 订单订单编号用户编号购买时间总价格内容IP地址是否发货是否付款图3.6.6订单实体E-R图订单列表购书数量图书编号用户号订单号图 3.6.7订单列表实体的E-R图3.7 数据库逻辑结构设计主要数据表的结构u 表3.7.1为图书信息列表,记录书店现有的图书信息。表3.7.1Book表列名数据类型长度允许空注释bookISBNvarchar50否图书编号bookNamevarchar50否图书名称bookAuthorvarchar50否作者publisherVarchar50是出版社PriceVarchar50是价格IntroduceVarchar150是简介 u 表3.7.2为书店管理员信息表,记录管理员的帐号和密码。表3.7.2 BookAdmin表列名数据类型长度允许空注释AdminnameVarchar20否管理员AdminPasswordVarchar20否管理员密码u 表3.7.3为用户信息表,记录用户的基本信息。表3.7.3 用户表列名数据类型长度允许空注释memberIDVarchar 50否用户编号membernameVarchar50否用户名logintimeInt50否登陆次数pwdVarchar50否密码phoneCodeVarchar50是电话zipcodeVarchar50是邮编addressVarchar50是地址emailVarchar50是电子邮件地址u 表3.7.4为订单表,记录但张订单的具体信息。表3.7.4 订单表列名数据类型长度允许空注释orderIDInt4否订单IDuserIDVarchar50否会员receiverNameVarchar50否接收者姓名receiverAddressVarchar150是接收者地址receiverZipVarchar150是接收者邮编orderRemVarchar50是备注orderPriceVarchar300是OrderdateDate50是HandledVarchar50是u 表3.7.5为图书分类表,记录书店现有图书的分类。表3.7.5 订单信息表列名数据类型长度允许空注释orderIDInt30否订单号bookISBMVarchar否书号Bookcountvarchar30否数量3.8 系统部分代码1)连接oracle的部分代码如下所示:package JDBC;import java.sql.Connection;import java.sql.DriverManager;import java.sql.Statement;public class DB /*public static String URL = jdbc:sqlserver:/218.192.101.146:1433;DatabaseName=client;public static String DIR = com.microsoft.sqlserver.jdbc.SQLServerDriver;public static String USE = sa;public static String PAS = 123;/*/public static String URL = jdbc:oracle:thin:218.192.101.152:1521:orcl;public static String DIR = oracle.jdbc.driver.OracleDriver;public static String USE = sa;public static String PAS = abc;/*/public static void main(String args) throws ExceptionClass.forName(DIR);Connection conn = DriverManager.getConnection(URL,USE,PAS);Statement stmt = conn.createStatement();String strSql = Select * from buyerInfo ;System.out.println(stmt.executeUpdate(select * from cat);System.out.println(strSql + stmt.executeUpdate(strSql);/rs = stmt.executeQuery(strSql);2)BuyerBean.Java代码如下所示/* *BuyerBean.Java 1.10.2001 *Copyright ? 2000, 2001 by cuug llp.*本Bean中有两个set方法和两个get 方法:*setMemberID() 对BuyerBean中的memberID属性进行赋值;*setPwd()对BuyerBean中的 pwd 属性进行赋值;*getLogontimes() 取该会员登录的次数*getMenberName()获得该会员的真实姓名,用于显示欢迎信息。*main()方法用于将BEAN作为一个 Application进行测试时使用,正式发布时可以删除。 */package cuug;import java.sql.*;import JDBC.DB;public class BuyerBean extends DB private String memberID = null ; /会员IDprivate String memberName = null; /会员姓名private String pwd = null;/密码private int logontimes = -1;/登录的次数private Connection conn =null; /连接private ResultSet rs = null;/结果集public BuyerBean ()/加载JDBC-ODBC驱动try Class.forName(DIR);catch(Exception e)/获得登录次数,登录的会员的名字也在该方法调用时获得public int getLogontimes()String strSql = null;tryString uri=URL;/建立与数据库的连接conn = DriverManager.getConnection(uri,USE,PAS);Statement stmt = conn.createStatement();strSql = Select loginTimes,membername from buyerInfo where memberID = + memberID + and pwd = + pwd + ;System.out.println(strSql);rs = stmt.executeQuery(strSql);while (rs.next()/ 登录的次数logontimes = rs.getInt(loginTimes);/会员姓名 memberName = rs.getString(membername); rs.close();/如果是合法会员则将其登录次数加1if (logontimes != -1 ) strSql = Update buyerInfo set loginTimes = loginTimes +1 where memberID = + memberID + ;stmt.executeUpdate(strSql);stmt.close();conn.close();/捕获异常catch(SQLException e)System.err.println(BuyerBean.getLogontimes(): + e.getMessage();return logontimes ;/设置memberID属性;public void setMemberID(String ID)this.memberID = ID;/设置pwd 属性public void setPwd(String password)this.pwd = password;/获得该会员的真实姓名,必须在取该会员登录的次数之后才能被赋予正确的值public String getMemberName()return memberName;/测试Bean中的各个方法是否能够正常工作public static void main(String args)BuyerBean buyer = new BuyerBean();buyer.setMemberID(abcd);buyer.setPwd(1234);System.out.println(buyer.getLogontimes();System.out.println(buyer.getMemberName();3)default.html代码如下所示:CUUG ON LINE BOOK STORE MEMBER LOGIN用户注册管理员登录CUUG 网上书店会员登录页请输入会员代号和密码: 会员代码: 密    码: 在本例中提供了一个文本框供用户输入会员代号和登录密码,其运行结果如图所示,当会员输入其代码和密码后调用checklogon.jsp 来验证该网络用户是否是合法会员。会员登录页在checklogon.jsp 中接收从default.htm中由用户所填的会员代码和密码,把它传给BuyerBean,由BuyerBean判断该用户的会员代码和密码的正确性,若正确显示欢迎信息;若不正确,则提供一个重新登录的链接。在本页面还可以跳转到用户注册和管理员登录。4)Checklogon.jsp的代码如下所示:CUUG ON LINE BOOK STORE MEMBER LOGINCUUG 网上书店 0)/session.putValue(memberID,memberID);session.setAttribute(memberID,memberID);%欢迎你第次来到CUUG网上书店进入书店对不起,你的用户名和密码不一致重新登录 登录正确时的结果如图所示,错误时的结果如图所示。 用户登录正确(会员号2,密码是34)用户登录错误5)addcart.jsp代码如下所示:function Timer()setTimeout(self.close(),10000)购物车CUUG 网上订书系统图书已经成功放入购物车!查看购物车SHOPPING CART提交定单 ORDER (此窗口将为您在10秒内自动关闭,您的商品已经安全地保存在购物车中。)在addcart.jsp中利用JavaScript定义了一个函数Timer(),由它来控制该窗口的显示时间()。继续购买部分也是由JavaScript定义的函数来控制关闭本窗口。其运行结果如图所示。6)shoppingcart.jsp代码如下所示:查看购物车 -member:CUUG 网上书店购物车 ISBN 书名 单价 数量 %/*读取购物车信息*/Cookie cookies=request.getCookies();HashMap bookCart = (HashMap)request.getSession().getAttribute(bookCart) ;for (int i=0;i A href=bookinfo.jsp?isbn= INPUT size=5 type=text maxlength=5 value= name=num readonly A href=delbook.jsp?isbn=删除 返回首页 清空购物车 修改数量 填写提交订单 查看购物车的结果如图所示:查看购物车内容7)其余代码见附带的文件夹,运行结果截图如下 查看购物车内容删除图书后的页面清空购物车的页面图书详细信息定单提交信息定单正确提交用户注册页面添加图书页面4、 小结这个学期的课程设计已经结束了,经过了这个学期的oracle课程的学习,在我们小组人员相互的协助下,我们终于完成了课程设计。在这个学期的oracle课程设计里,通过我们的亲身实践和学习懂得了许多道理,也学会了许多课堂没有学到的东西。特别是还要和我们学到的另外一个课程JSP一起联合提来完成的。这个课程设计是综合了2门课的内容。在实训中,也遇到了很多困难,但是通过我们班的同学的帮助和指导,所有问题都得到了解决,也使自己对一些问题有了新的看法和认识。我们认为作为当代的大学生,不能只学习书本上的知识,更主要的是要通过学习来增加自己的才干,将所学的知识运用到具体实践中,充分发挥自己的主观能动性,调动学习的积极性。时间是一本书,是知识的海洋。只有应用到实践中,才能在这广阔的海洋里翱翔。光学不用,既是学习再怎么好,也会被人们成为书呆子。在这一次课程设计中,使我们感受颇深 。学习并不是一件容易的事,要先学有所用,在学习中不能有一点马虎的地方。每个问题都要研究得明明白白,这样才能在实践中占领先地位。在学习上也要有坚强的毅力、信心和细心,就拿这次课程设计来讲,刚开始真的是无从下手,面对着课程设计的要求,不知道如何分析,如何设计,但是最后通过全组人员一起讨论,去图书馆借书,参考网上的一些资料,最终我们总算顺利的完成了这次课程设计的任务,熟悉了oracle数据库的知识。经过这个课程设计的艰辛努力最后换来了丰硕的成果,虽然还有些不完善的地方,网站也比较简陋,没有美化,但是毕竟是我们小组成员花费大量的时间设计出来的,也感到有一丝欣慰。可以肯定的说现在我们队数据库设计这一块有了一定的了解,但是我们也深知我们所了解的不过仅仅是皮毛而已,离真正的运用自如还相距甚远。人生有数,学无止境,学习生活是无穷尽,只有掌握更多的、更新的知识才能使自己始终立于不败之地。如果只为现在所取得的成绩而沉浸于喜悦、骄傲之中的话,那么,我们将不会前进,只能停留在原来的地方踏步,甚至还会倒退。所以从这次oracle课程设计所暴露出的问题入手,不断努力完善自己,哪里欠缺,哪里补足。参考书目:1 汪孝宜,刘中兵,徐佳晶等编著,JSP数据库开发实例精粹M,北京:电子工业出版社,2005.2 张文静,林琪译,JSP程序设计,北京:人民邮电出版社M,2006.3 孙卫琴,李洪成著,Tomcat与Java Web开发技术祥解M,北京:电子工业出版社,2006.4 耿祥义、张跃平编著,JSP实用教程,北京:清华大学出版社,2007.5 孙风栋等编著,Oracle数据库基础教程,北京:电子工业出版社,2007.袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论