Oracle9i数据库系统课程设计网上书店系统.docx

上传人:b****1 文档编号:1996520 上传时间:2023-05-02 格式:DOCX 页数:30 大小:334.18KB
下载 相关 举报
Oracle9i数据库系统课程设计网上书店系统.docx_第1页
第1页 / 共30页
Oracle9i数据库系统课程设计网上书店系统.docx_第2页
第2页 / 共30页
Oracle9i数据库系统课程设计网上书店系统.docx_第3页
第3页 / 共30页
Oracle9i数据库系统课程设计网上书店系统.docx_第4页
第4页 / 共30页
Oracle9i数据库系统课程设计网上书店系统.docx_第5页
第5页 / 共30页
Oracle9i数据库系统课程设计网上书店系统.docx_第6页
第6页 / 共30页
Oracle9i数据库系统课程设计网上书店系统.docx_第7页
第7页 / 共30页
Oracle9i数据库系统课程设计网上书店系统.docx_第8页
第8页 / 共30页
Oracle9i数据库系统课程设计网上书店系统.docx_第9页
第9页 / 共30页
Oracle9i数据库系统课程设计网上书店系统.docx_第10页
第10页 / 共30页
Oracle9i数据库系统课程设计网上书店系统.docx_第11页
第11页 / 共30页
Oracle9i数据库系统课程设计网上书店系统.docx_第12页
第12页 / 共30页
Oracle9i数据库系统课程设计网上书店系统.docx_第13页
第13页 / 共30页
Oracle9i数据库系统课程设计网上书店系统.docx_第14页
第14页 / 共30页
Oracle9i数据库系统课程设计网上书店系统.docx_第15页
第15页 / 共30页
Oracle9i数据库系统课程设计网上书店系统.docx_第16页
第16页 / 共30页
Oracle9i数据库系统课程设计网上书店系统.docx_第17页
第17页 / 共30页
Oracle9i数据库系统课程设计网上书店系统.docx_第18页
第18页 / 共30页
Oracle9i数据库系统课程设计网上书店系统.docx_第19页
第19页 / 共30页
Oracle9i数据库系统课程设计网上书店系统.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Oracle9i数据库系统课程设计网上书店系统.docx

《Oracle9i数据库系统课程设计网上书店系统.docx》由会员分享,可在线阅读,更多相关《Oracle9i数据库系统课程设计网上书店系统.docx(30页珍藏版)》请在冰点文库上搜索。

Oracle9i数据库系统课程设计网上书店系统.docx

Oracle9i数据库系统课程设计网上书店系统

 

 

课程设计报告

(学生版)

2010~2011学年第二学期

教学单位*

课程名称Oracle9i数据库系统课程设计

课程设计题目网上书店系统

指导教师*

学生姓名*

专业名称计算机科学与技术(数据库)

年级2008级

 

网上书店系统

1、课程设计背景与目的

1.1背景

随着Internet国际互联网的发展,越来越多的企业开始建造自己的网站。

基于Internet的信息服务,商务服务已经成为现代企业一项不可缺少的内容。

很多企业都已不满足于建立一个简单的仅仅能够发布信息的静态网站。

现代企业需要的是一个功能强大的,能提供完善的电子商务服务的动态商务网站。

同时人们的生活方式也在随着发生改变,传统的购物方式已不能满足人们的需求。

JSP是Sun公司推出的一种网站开发技术。

JSP即JavaServerPage,它可以在Servlet和JavaBean的支持下,完成功能强大的Web应用程序。

所以,在我们这次课程设计中,我们采用了JSP作为开发工具,构建了一个能实现基本的电子商务的小型动态商务网站——网上图书销售系统。

该系统能实现用户的注册、登录功能;能够实现商品的查询,订购等功能。

该系统基本上具备一个网上商品销售系统应该具备的常用功能,该设计项目基本上体现了构建一个动态商务网站所需要的技术,可以说,目前的大型商务网站也就是我们这个小型网站在内容上的扩充和完善。

1.2目的

本系统的目的是实现一个完整的电子商务网站,用于书籍商品的展示和销售。

采用JSP和oracle数据库作为开发工具,构建了一个能实现基本的电子商务的小型动态商务网站——网上图书销售系统。

该系统要能实现用户的注册、登录功能;能够实现商品的查询,订购等功能。

2、课程设计题目描述和要求

本系统主要实现以下两方面的功能:

一是客户在网上查书、选书、购书和产生订单等功能。

二是后台的图书管理功能,包括图书种类的管理和图书的管理。

具体划分的模块有:

图书查询、购物车管理、订单管理、会员管理、图书管理等。

硬件环境:

128M以上内存

10G以上硬盘空间

VGA高分辨率显示器

键盘及鼠标输入设备

软件环境:

操作系统为:

WIN98,WIN2000,WINXP

软件开发工具:

Eclipse,Tomcat,Oracle9i

3、课程设计报告内容

3.1系统设计目标

对于典型的数据库管理系统,尤其是对像电子商务这样的数据流量特别大的网络管理系统,必须要满足使用方便、操作灵活等设计要求。

本系统在设计时应该满足以下几个目标:

●采用人机对话的操作方式,界面设计美观友好、信息查询灵活、方便、快捷、准确、数据存储安全可靠。

●全面展示书店内所有的图书,并可展示最新图书及特价图书。

●为顾客提供一个方便、快捷的图书信息查询功能。

采用模糊查询查询数据。

●实现网上购物。

●商品销售排行,以方便顾客了解本商城内的热销商品及帮助企业领导者做出相应的决策。

●查看商城内的公告信息。

●用户随时都可以查看自己的订单。

●对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误。

●系统最大限度地实现了易维护性和易操作性。

●系统运行稳定、安全可靠。

3.2系统基本功能

1)图书信息查询

该模块实现图书信息的分类显示,提供最新商品的推荐显示以及销售显示,便于引导购物取向。

此外,还提供依据图书名称或是编号等包含关键字实现快速搜索的功能并显示图书的有关详细信息。

2)购物车管理

用于对每一个进入系统的用户所对应的购物车进行管理。

将用户所选购的图书信息,包括价格、数量等信息记录到对应的购物车上,便于到收银台进行结帐处理。

同时在此模块中,用户还可以方便的实现修改购物图书、清空购物车等操作。

3)会员信息管理

实现系统相关用户信息的注册及身份验证,同时也提供对应的用户资料的更新。

该系统可以收集用户相关的联系方式、通讯地址等信息。

4)订单处理

根据购物车中的信息,以及用户所选择的送货方式和付款方式,和用户对应的个人信息生成订单,便于后续工作的处理。

在该模块中,用户可以随时查阅自己的订单,并对其进行取消等处理操作。

3.3数据库需求分析

以下是数据库需求信息:

◆一个用户可以购买多本图书。

◆一个用户对应一张订单。

◆一个列表对应多张订单。

◆用户,包括数据项:

用户ID、用户名、密码。

◆图书,包括数据项:

图书编号、图书名、价格、出版社、图书介绍。

◆订单列表,包括数据项:

订单编号、图书编号、购书数量。

◆订单,包括数据项:

订单编号、用户编号、下单时间。

3.4数据库设计

数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率,以及实现的效果产生影响。

合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。

3.5数据库需求分析

针对网上图书销售系统的需求分析,得出如下需求信息。

订单分为单张详细订单和总订单。

▪一个用户可以购买多本图书。

▪一个用户对应一张订单。

▪一个列表对应多张订单。

针对本系统功能分析,总结出如下的需求信息。

▪用户,包括数据项:

用户ID、用户名、密码。

▪图书,包括数据项:

图书编号、图书名、价格、图书介绍。

▪订单列表,包括数据项:

订单编号、图书编号、购书数量。

▪订单,包括数据项:

订单编号、用户编号、下单时间。

3.6数据库概念结构设计

从本系统中规划出的实体有:

用户信息实体、管理员信息实体、图书实体、图书分类实体、订单实体、订单列表实体。

实体之间关系的E-R图如图4.5所示。

M

N

图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图

图3.6.4用户实体E-R图

图3.6.5图书实体E-R图

图3.6.6订单实体E-R图

图3.6.7订单列表实体的E-R图

3.7数据库逻辑结构设计

主要数据表的结构

◆表3.7.1为图书信息列表,记录书店现有的图书信息。

表3.7.1 Book表

列名

数据类型

长度

允许空

注释

bookISBN

varchar

50

图书编号

bookName

varchar

50

图书名称

bookAuthor

varchar

50

作者

publisher

Varchar

50

出版社

Price

Varchar

50

价格

Introduce

Varchar

150

简介

◆表3.7.2为书店管理员信息表,记录管理员的帐号和密码。

表3.7.2BookAdmin表

列名

数据类型

长度

允许空

注释

Adminname

Varchar

20

管理员

AdminPassword

Varchar

20

管理员密码

◆表3.7.3为用户信息表,记录用户的基本信息。

表3.7.3用户表

列名

数据类型

长度

允许空

注释

memberID

Varchar

50

用户编号

membername

Varchar

50

用户名

logintime

Int

50

登陆次数

pwd

Varchar

50

密码

phoneCode

Varchar

50

电话

zipcode

Varchar

50

邮编

address

Varchar

50

地址

email

Varchar

50

电子邮件地址

◆表3.7.4为订单表,记录但张订单的具体信息。

表3.7.4订单表

列名

数据类型

长度

允许空

注释

orderID

Int

4

订单ID

userID

Varchar

50

会员ID

receiverName

Varchar

50

接收者姓名

receiverAddress

Varchar

150

接收者地址

receiverZip

Varchar

150

接收者邮编

orderRem

Varchar

50

备注

orderPrice

Varchar

300

Orderdate

Date

50

Handled

Varchar

50

◆表3.7.5为图书分类表,记录书店现有图书的分类。

表3.7.5订单信息表

列名

数据类型

长度

允许空

注释

orderID

Int

30

订单号

bookISBM

Varchar

书号

Bookcount

varchar

30

数量

3.8系统部分代码

1)连接oracle的部分代码如下所示:

packageJDBC;

importjava.sql.Connection;

importjava.sql.DriverManager;

importjava.sql.Statement;

publicclassDB{

/*publicstaticStringURL="jdbc:

sqlserver:

//218.192.101.146:

1433;DatabaseName=client";

publicstaticStringDIR="com.microsoft.sqlserver.jdbc.SQLServerDriver";

publicstaticStringUSE="sa";

publicstaticStringPAS="123";

/**/

publicstaticStringURL="jdbc:

oracle:

thin:

@218.192.101.152:

1521:

orcl";

publicstaticStringDIR="oracle.jdbc.driver.OracleDriver";

publicstaticStringUSE="sa";

publicstaticStringPAS="abc";

/**/

publicstaticvoidmain(String[]args)throwsException{

Class.forName(DIR);

Connectionconn=DriverManager.getConnection(URL,USE,PAS);

Statementstmt=conn.createStatement();

StringstrSql="Select*frombuyerInfo";

System.out.println(stmt.executeUpdate("select*fromcat"));

System.out.println(strSql+stmt.executeUpdate(strSql));

//rs=stmt.executeQuery(strSql);

}

}

2)BuyerBean.Java代码如下所示

/**BuyerBean.Java1.10.2001

*Copyright?

2000,2001bycuugllp.

*本Bean中有两个set方法和两个get方法:

*setMemberID()—对BuyerBean中的memberID属性进行赋值;

*setPwd()—对BuyerBean中的pwd属性进行赋值;

*getLogontimes()—取该会员登录的次数

*getMenberName()获得该会员的真实姓名,用于显示欢迎信息。

*main()方法用于将BEAN作为一个Application进行测试时使用,正式发布时可以删除。

**/

packagecuug;

importjava.sql.*;

importJDBC.DB;

publicclassBuyerBeanextendsDB{

privateStringmemberID=null;//会员ID

privateStringmemberName=null;//会员姓名

privateStringpwd=null;//密码

privateintlogontimes=-1;//登录的次数

privateConnectionconn=null;//连接

privateResultSetrs=null;//结果集

publicBuyerBean(){

//加载JDBC-ODBC驱动

try{

Class.forName(DIR);

}

catch(Exceptione){

}

}

//获得登录次数,登录的会员的名字也在该方法调用时获得

publicintgetLogontimes(){

StringstrSql=null;

try{

Stringuri=URL;

//建立与数据库的连接

conn=DriverManager.getConnection(uri,USE,PAS);

Statementstmt=conn.createStatement();

strSql="SelectloginTimes,membernamefrombuyerInfowherememberID='"+memberID+"'andpwd='"+pwd+"'";

System.out.println(strSql);

rs=stmt.executeQuery(strSql);

while(rs.next()){

//登录的次数

logontimes=rs.getInt("loginTimes");

//会员姓名

memberName=rs.getString("membername");

}

rs.close();

//如果是合法会员则将其登录次数加1

if(logontimes!

=-1){

strSql="UpdatebuyerInfosetloginTimes=loginTimes+1wherememberID='"+memberID+"'";

stmt.executeUpdate(strSql);

}

stmt.close();

conn.close();

}

//捕获异常

catch(SQLExceptione){

System.err.println("BuyerBean.getLogontimes():

"+e.getMessage());

}

returnlogontimes;

}

//设置memberID属性;

publicvoidsetMemberID(StringID){

this.memberID=ID;

}

//设置pwd属性

publicvoidsetPwd(Stringpassword){

this.pwd=password;

}

//获得该会员的真实姓名,必须在取该会员登录的次数之后才能被赋予正确的值

publicStringgetMemberName(){

returnmemberName;

}

//测试Bean中的各个方法是否能够正常工作

publicstaticvoidmain(Stringargs[]){

BuyerBeanbuyer=newBuyerBean();

buyer.setMemberID("abcd");

buyer.setPwd("1234");

System.out.println(buyer.getLogontimes());

System.out.println(buyer.getMemberName());

}

}

3)default.html代码如下所示:

--

Copyright?

1999cuug,liu.

-->

CUUGONLINEBOOKSTORE–MEMBERLOGIN

用户注册

管理员登录

CUUG网上书店

会员登录页


请输入会员代号和密码:


会员代码:


密    码:



 

在本例中提供了一个文本框供用户输入会员代号和登录密码,其运行结果如图所示,当会员输入其代码和密码后调用checklogon.jsp来验证该网络用户是否是合法会员。

会员登录页

在checklogon.jsp中接收从default.htm中由用户所填的会员代码和密码,把它传给BuyerBean,由BuyerBean判断该用户的会员代码和密码的正确性,若正确显示欢迎信息;若不正确,则提供一个重新登录的链接。

在本页面还可以跳转到用户注册和管理员登录。

 

4)Checklogon.jsp的代码如下所示:

DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">

<%@pagelanguage="Java"contentType="text/html;charset=GB2312"%>

useBeanclass="cuug.BuyerBean"id="buyer"scope="page">

useBean>

</p><p>CUUGONLINEBOOKSTORE�MEMBERLOGIN</p><p>

CUUG网上书店

<%

StringmemberID=request.getParameter("memberID");

Stringpwd=request.getParameter("pwd");

buyer.setMemberID(memberID);

buyer.setPwd(pwd);

%>

<%intlogonTimes=buyer.getLogontimes();

if(logonTimes>0){

//session.putValue("memberID",memberID);

session.setAttribute("memberID",memberID);

%>

<%=buyer.getMemberName()%>欢迎你第

<%=logonTimes+1%>次来到CUUG网上书店

进入书店

<%

}

else{

%>

对不起,<%=memberID%>你的用户名和密码不一致

重新登录

<%

}

%>

登录正确时的结果如图所示,错误时的结果如图所示。

用户登录正确(会员号2,密码是34)

用户登录错误

 

5)addcart.jsp代码如下所示:

DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">

<%@pageimport="java.util.HashMap"%>

<%@pagelanguage="Java"contentType="text/html;charset=GB2312"%>

<%

/*Cookie信息处理*/

/*增加Cookie*/

if(request.getParameter("isbn")!

=null)

{Cookiecookie=newCookie("ISBN"+request.getParameter("isbn"),"1");

cookie.setMaxAge(30*24*60*60);//设定Cookie有效期限30日

response.addCookie(cookie);

}

if(request.getParameter("isbn")!

=null)

{

HashMapbookCart=(HashMap)request.getSession().getAttribute("bookCart");

if(bookCart==null)bookCart=newHashMap();

bo

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2