Oracle9i数据库系统课程设计网上书店系统.docx
- 文档编号:12207888
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:30
- 大小:334.18KB
Oracle9i数据库系统课程设计网上书店系统.docx
《Oracle9i数据库系统课程设计网上书店系统.docx》由会员分享,可在线阅读,更多相关《Oracle9i数据库系统课程设计网上书店系统.docx(30页珍藏版)》请在冰豆网上搜索。
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
是
地址
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.
-->
请输入会员代号和密码:
会员代码:
密 码: