网上书店信息系统分析设计报告.docx
- 文档编号:3928311
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:14
- 大小:44.83KB
网上书店信息系统分析设计报告.docx
《网上书店信息系统分析设计报告.docx》由会员分享,可在线阅读,更多相关《网上书店信息系统分析设计报告.docx(14页珍藏版)》请在冰豆网上搜索。
网上书店信息系统分析设计报告
网上书店网站实验报告
1、项目说明
网上书店:
顾名思义,网站式的书店。
是一种高质量,更快捷,更方便的购书方式。
网上书店不仅可用于图书的再线销售,也有音碟、影碟的在线销售。
而且网站式的书店对图书的管理更加合理化,信息化。
售书的同时还具有书籍类商品管理、购物车、订单管理、会员管理等功能,非常灵活的网站内容和文章管理功能。
但网上书店的真实性是消费者的最大顾虑,这也是网上书店还不被大多数消费者所接受的原因之一。
在网上书店买书,可以查到所买图书的更多信息,因为网上书店是一个网站,它有它独特的售书方式和功能。
如用户注册会员功能等,会员类型有:
高级会员、金牌会员等。
有的网上书店有会员积分设置,如达到一定积分时自动成为高级会员,高级会员会有优惠和特别的服务。
还有就是支付方式了,一般网上书店都有三种类型的支付方式:
汇款类支付、在线支付、其他支付方式,其中在线支付只要到支付平台开户后,将所获开户信息填入即可。
当在网上书店购书后,用户所购图书都在网站上有记录,方便用户查询。
2、需求分析
网上书店和现实书店区别比较:
网上书店的优势:
涉及范围广,经营成本低,劣势:
信用度如果低,影响生意;
现实书店的优势:
直观,信用度高。
劣势:
涉及范围有限,经营成本高;
现在有部分现实书店已经开始从网上书店进货了。
本系统开发的目的是为
了学习这样去做一个交互式的网页以及了解这种强大的网络编程工具,方
便客户端和浏览器端之间的交流。
数据库采用实用,易学的SQLSever2000,以Tomcat作为JSP的WEB服务器,XP作为系统运行平台。
3、总体设计
(1)实验目的:
1.利用本次机会来了解JSP一般的技术及使用模式,并能够使用这种技术,建立一个简单的论坛网站。
2.通过本次学习,使自己巩固所学过的书本理论知识,加深对相关内容的理解。
(2)实验要求:
要基本了解JSP编程技术,学会使用JSP开发一个小型网站的基本知识,巩固数据库基本理论,并用于开发一个小型的网站。
三技术简介
JavaServerPages(JSP)是一种实现普通静态HTML和动态HTML混合编码的技术,许多由CGI程序生成的页面大部分仍旧是静态HTML,动态内容只在页面中有限的几个部分出现。
但是包括Servlet在内的大多数CGI技术及其变种,总是通过程序生成整个页面。
JSP使得我们可以分别创建这两个部分。
(3)系统设计特点:
网上书店具有:
(1)提供了全面,详细的图书购物入口,轻松实现快捷购买。
(2)可以通过不同分类进行导航,用最方便,最快捷的方式找到你需要的图书。
(3)提供了图书购物所需的各种工具与网站,满足你的图书购买需求。
(4)公正性很强(大站.专站.小站)排列顺序分明.公平公正的图书网址TOP排行
4、数据库设计
本系统使用数据库引擎为HSQLDB。
数据库文件SIMS(studentinformationmanagementsystem)。
该系统表:
1图书基本信息表(book)
2图书分类基本信息表(bookcat)
3客户基本信息表(storeuser)
4订单信息表(orders)
5订单条目详细信息表(orderdetails)
== 1 ===========================================
字段名描述 类型
id图书编号 int
catid图书分类编号int
name图书名称 varchar
price图书价格 int
saleprice销售价格 int
descript图书介绍 varchar
author图书作者 varchar
contents图书目录 varchar
image图书封面图片存放路径varchar
== 2 ===========================================
字段名描述 类型
id图书分类编号int
catname图书分类名称varchar
== 3 ===========================================
字段名描述 类型
username用户名 varchar
password密码 varchar
name客户姓名 varchar
tel客户电话 varchar
address客户地址 varchar
email客户电子邮件地址varchar
== 4 ===========================================
字段名描述 类型
id订单编号int
username订单对应用户名varchar
time产生订单的时间smalldatetime
delivery订单对应送货方式varchar
payment订单对应付款方式varchar
== 5 ===========================================
字段名描述 类型
orderid订单编号 int
bookid图书编号 int
count订购数量 int
price该条目对应价格int
建立数据库
1、
2、数据库连接
packages2jsp.lg.dao.impl;
importjava.sql.*;
publicclassBaseDao{
publicfinalstaticStringDRIVER="com.microsoft.jdbc.sqlserver.SQLServerDriver";//数据库驱动
publicfinalstaticStringURL="jdbc:
microsoft:
sqlserver:
//localhost:
1433;DataBaseName=bbs";//url
publicfinalstaticStringDBNAME="";//数据库用户名
publicfinalstaticStringDBPASS="sa";//数据库密码
/**
*得到数据库连接
*@throwsClassNotFoundException
*@throwsSQLException
*@return数据库连接
*/
publicConnectiongetConn()throwsClassNotFoundException,SQLException{
Class.forName(DRIVER);//注册驱动
Connectionconn=DriverManager.getConnection(URL,DBNAME,DBPASS);//获得数据库连接
returnconn;//返回连接
}
/**
*释放资源
*@paramconn数据库连接
*@parampstmtPreparedStatement对象
*@paramrs结果集
*/
publicvoidcloseAll(Connectionconn,PreparedStatementpstmt,ResultSetrs){
/*如果rs不空,关闭rs*/
if(rs!
=null){
try{rs.close();}catch(SQLExceptione){e.printStackTrace();}
}
/*如果pstmt不空,关闭pstmt*/
if(pstmt!
=null){
try{pstmt.close();}catch(SQLExceptione){e.printStackTrace();}
}
/*如果conn不空,关闭conn*/
if(conn!
=null){
try{conn.close();}catch(SQLExceptione){e.printStackTrace();}
}
}
/**
*执行SQL语句,可以进行增、删、改的操作,不能执行查询
*@paramsql预编译的SQL语句
*@paramparam预编译的SQL语句中的‘?
’参数的字符串数组
*@return影响的条数
*/
publicintexecuteSQL(StringpreparedSql,String[]param){
Connectionconn=null;
PreparedStatementpstmt=null;
intnum=0;
/*处理SQL,执行SQL*/
try{
conn=getConn();//得到数据库连接
pstmt=conn.prepareStatement(preparedSql);//得到PreparedStatement对象
if(param!
=null){
for(inti=0;i pstmt.setString(i+1,param[i]);//为预编译sql设置参数 } } num=pstmt.executeUpdate();//执行SQL语句 }catch(ClassNotFoundExceptione){ e.printStackTrace();//处理ClassNotFoundException异常 }catch(SQLExceptione){ e.printStackTrace();//处理SQLException异常 }finally{ closeAll(conn,pstmt,null);//释放资源 } returnnum; } } 5.详细设计 (1)JSP概述 网上书店系统中把数据库的连接参数写在dbconn.properties文件中,再用一个Java类来生成一个数据库连接对象以供其他程序使用。 网上书店的首页显示的内容最多,但源代码并不长,原因是: 一是因为一些多个页面共用的代码被放入另一个文本文件或JSP文件中,在需要的地方包含进来,减少了代码量,提高了代码的可复用程度;二是系统较好地进行了模块化的设计与开发,在JSP页面中很少用到Java代码,所有业务逻辑都用Java类来完成,JSP页面中只是简单的展现数据。 JSP是Sun公司在Java和Servlet技术基础上推出的一种新型的服务器端动态脚本技术。 它已经逐渐成为架设电子商务网站的主流技术。 它的以下特点决定了本系统为什么采用JSP作为Web应用程序的开发工具。 ⒈JSP将内容的生成和显示进行分离 2.JSP程序运行在服务端 3.高性能的编译运行机制 4.继承了Java的跨平台特性 5.可重用组件 6.可扩展标签库 7.强大的数据库支持 (2)封装的操作; */ publicclassbookTypeOPBeanextendsdbOpertaion{ publicArrayListbookTypeArray=newArrayList(); publicStringbookTypeIdStr=newString(""); /**。 (3)构造函数,将所有书藉类型信息查询出来: */ publicbookTypeOPBean(){ StringsqlString="select*frombook_type"; ResultSetrs=this.executeQuery(sqlString); try{ inti=0; while(rs.next()){ bookTypeBeanbookType=newbookTypeBean(); bookType.setBookTypeId(rs.getInt("type_id")); bookType.setBookTypeName(rs.getString("type_name")); bookTypeArray.add(i,bookType); i++; } }catch(SQLExceptione){ e.printStackTrace(); bookTypeArray=null; } } /** (4)通过书藉分类名称查找类型信息: */ publicbookTypeBeanselectBookTypeByName(StringbookTypeName){ if(bookTypeName==null)returnnull; bookTypeBeanbookType=newbookTypeBean(); StringsqlString="select*frombook_typewheretype_name='"+bookTypeName+"'"; ResultSetrs=this.executeQuery(sqlString); try{ inti=0; if(rs.next()){ bookType.setBookTypeId(rs.getInt("type_id")); bookType.setBookTypeName(rs.getString("type_name")); } }catch(SQLExceptione){ e.printStackTrace(); } returnbookType; } /** (5)根据属性bookTypeIdStr查找书藉类型信息: */ publicbookTypeBeanselectBookTypeId(){ intbookTypeId=0; if(bookTypeIdStr! =null&&bookTypeIdStr.length()>1) try{ bookTypeId=Integer.parseInt(bookTypeIdStr); }catch(Exceptione){ e.printStackTrace(); } if(bookTypeId==0)returnnull; bookTypeBeanbookType=newbookTypeBean(); StringsqlString="select*frombook_typewheretype_id="+bookTypeId; ResultSetrs=this.executeQuery(sqlString); try{ if(rs.next()){ bookType.setBookTypeId(rs.getInt("type_id")); bookType.setBookTypeName(rs.getString("type_name")); } }catch(SQLExceptione){ e.printStackTrace(); } returnbookType; } /** (6)更新书藉分类: *@parambookTypeId: 类型ID号 *@parambookTypeName: 类型名称 *@returnint: 返回更新的行数 */ publicintupdateBookType(intbookTypeId,StringbookTypeName){ if(bookTypeId==0||bookTypeName==null||bookTypeName.length()<=0) return0; //------构造SQL语句------ StringsqlString="updatebook_typesettype_name='"+bookTypeName+ "'wheretype_id="+bookTypeId; //------执行SQL语句------ inti=this.executeUpdate(sqlString); returni; } /** (7)新增一个书藉类型: */ publicintinsertBookType(StringbookTypeName){ inti=0; //------构造SQL语句------ StringsqlString="insertintobook_type(type_name)values('"+bookTypeName+"')"; //------执行SQL语句------ i=this.executeUpdate(sqlString); returni; } /** (8)删除一个书藉类型: *@parambookTypeId: 要删除的类型ID号 *@returnint: 返回删除的类型个数 */ publicintdeleteBookType(intbookTypeId){ inti=0; //------构造SQL语句------ StringsqlString="deletebook_typewheretype_id="+bookTypeId; //------执行SQL语句------ i=this.executeUpdate(sqlString); returni; } publicArrayListgetBookTypeArray(){ returnbookTypeArray; } publicvoidsetBookTypeArray(ArrayListbookTypeArray){ this.bookTypeArray=bookTypeArray; } publicStringgetBookTypeIdStr(){ returnbookTypeIdStr; } publicvoidsetBookTypeIdStr(StringbookTypeIdStr){ this.bookTypeIdStr=bookTypeIdStr; } } (9)网上书店系统中所有的报错信息都保存在一个“.properties”文件中,文件内容如下: book.bookNameNull=书藉名没有输入! book.typeIdNull=书藉所属类型没有选择! book.priceNotFloat=价格不为数字! book.priceRebateNotFloat=折扣输入不正确! book.publishDateError=出版日期输入有误! book.pageCountError=页数不为数字! addbook.insertError=插入新书时出错! updatebook.updateError=更新书藉信息时出错! bookType.bookTypeHaved=书藉类型已存在! bookType.insertError=插入新的书藉类型时出错! booktype.updateError=更新书藉类型信息时出错! user.userNameNull=用户名输入为空! user.userPasswordNull=用户密码输入为空! user.passwordNotEqual=两次输入的密码不一致! user.insertError=插入新的用户时出错! user.certCodeError=验证码不对! user.userError=用户名或密码输入有误! user.sessionError=用户会话已失效! orderform.newError=生成新的订单时出错! orderform.saveError=保存订单时出错! (10): CREATETABLEmembers( member_idintauto_incrementprimarykey, member_loginvarchar(20)NOTNULL, member_pas
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网上 书店 信息 系统分析 设计 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)