基于java的电子订餐实践文档.docx
- 文档编号:26847823
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:34
- 大小:2.76MB
基于java的电子订餐实践文档.docx
《基于java的电子订餐实践文档.docx》由会员分享,可在线阅读,更多相关《基于java的电子订餐实践文档.docx(34页珍藏版)》请在冰豆网上搜索。
基于java的电子订餐实践文档
1项目介绍
1.1项目简介
该项目是通过网上订餐,进行订单的提交和用户一些基本信息,是一个流行的使用性强的,操作简单的订餐系统,满足现代人时尚的生活。
开发人员:
张扬魏银银范静刘铸张弘
开发时间:
2008年7月12号———2008年7月20号
1.2项目背景与可行性分析
当今社会的生活节奏越来越快,人们对于餐饮的要求也越来越高,不仅仅要求色香味俱全,而且对于就餐的时间和方式也有了更高要求。
许多顾客由于工作繁忙无法抽出时间享受美味。
这样就产生了对快捷订餐送餐服务的需求。
最快捷的方式无疑就是计算机网络,将餐饮业和计算机网络结合起来就形成了网上订餐系统。
有能力的餐饮企业对餐品提供商提供网上订餐服务,不仅提高食品企业的服务质量,扩大知名度,也是为最终用户提供方便快捷的食品服务。
社会对餐饮的快捷性要求形成了对网上订餐的需求。
现阶段使用JavaWeb技术是最合适的。
使用JavaWeb技术的Servlet+JSP可以实现快捷开发和部署,并且可以最大限度地保证系统稳定性。
1.3术语与缩写解释
缩写、术语
解释
SqlServer2000
基于客户端/服务器结构的数据库管理系统
eclipse
提供加速J2EE、Web服务、XML、数据库应用程序开发工具
内存
运行本系统服务器的内存大小
硬盘
运行本系统服务器的硬盘大小
JSP
JavaServerPage,一种动态网页技术。
CPU
中央处理单元
Intel
美国英特尔公司,著名的芯片生产厂商。
2需求分析
用户可通过访问我网站电子订餐,进行登录或者注册,获得你想要的各种食物,管理员可以查看用户菜品,可以对菜单进行增删改查,
2.1产品介绍
产品名称:
电子订餐系统
产品用途:
对餐馆提供发布菜肴的信息,得到顾客订购的信息.对顾客提供订购菜肴的服务。
2.2产品面向的用户群体
各大酒店,网上店铺,以及一些大型商场的网上购物。
2.3产品应当遵循的标准或规范
使用自定义变量(包括全局变量、局部变量)之前必须先声明变量,并用注释语句标明变量的类型、用途。
自定义函数必须用注释语句标明函数的用途、参数的数据类型、意义,返回值的类型。
2.4产品功能的需求性
为了更具体的说明该产品的功能,具体功能如下表:
功能类别
子功能
用户管理
用户登录
用户注册
用户的操作
产品的展示
产品的详细信息
放入购物车
购物车查看
详细信息的提交
管理员的操作
增加菜品
修改菜品
删除菜品
结帐付款
确认支付和配送信息
结束订餐
设置友好结束页面
2.4.1用户登录、注册
用户首先登录页面,如果还未注册,先进行注册,然后提交用户名和密码信息,并设置安全检测。
2.4.2浏览菜品
显示餐品的各种信息,以供用户浏览选择。
2.4.3菜品详细信息
显示餐品中某一种餐品的详细信息,以供用户放入自己的购物车。
2.4.4购物车
查看购物车中所放餐品及餐品的数量,价格。
2.4.5结帐付款
提示用户输入个人的详细信息,付款方式以及附加的说明等信息。
2.4.6结束订餐
设置友好的结束页面。
2.4.7管理员的操作
对菜品进行增删改查。
2.5产品的非功能性需求
2.5.1用户界面需求
需求名称
详细要求
对应模块
密码验证
对密码验证过程中的各种情况的提示
用户登录
菜单显示
在显示的时候要一页显示,排列整齐
产品展示
2.5.2软硬件环境需求
需求名称
详细要求
软件环境
SqlServer2000,Tomcat6.0
内存
512GB以上,建议2GB
硬盘
20GB以上,建议80GB
2.5.3产品质量需求
主要质量属性
详细要求
正确性
系统能够正确实现需求说明中所定需求。
健壮性
系统能够正确处理不同的用户输入。
可靠性
高系统可以得当处理所发生的错误。
性能,效率
系统应可以处理同时200人在线的数据访问量。
易用性
仅具有基本计算机操作技巧的用户可以正确操作本系统。
清晰性
仅具有基本计算机操作技巧的用户可以正确理解本系统操作。
安全性
系统能够处理常见的攻击方式。
可扩展性
系统可以方便进行继续开发。
兼容性
本系统应可以与其他常见应用程序并行运行。
可移植性
系统可以迁移至Linux操作系统运行。
本系统可以迁移至Linux操作系统运行。
2.5.4其他需求
本系统可以提供对外服务,也可以进行多次开发,扩大餐品提供商的知名度,使之更好的被广大用户所接受和使用。
3数据库设计
3.1数据库环境声明
数据库系统:
SQLServer2000企业版
设计调试工具:
JBuilder
数据库服务器配置:
CPU:
Intel5112.8GHz
内存:
KingStongDDR400512MB*2
存储:
ST3250311250GB
3.2数据库的命名规则
表名
命名规则
菜单表menu
所有列均以“m_”开始
用户表users
所有列均以“u_”开始
购物车表bag
所有列均以“b_”开始
管理员表manage
所有列均以“m_”开始的相应英文单词命名
3.3逻辑设计
3.4物理设计
3.4.1表汇总
表名
功能说明
菜单表menu
存储各色菜式相关内容
用户表users
存储用户相关内容
购物车表bag
存储购买菜品相关内容
管理员表manage
存储管理员的相关内容
3.4.2表menu
表名
菜单表menu
列名
数据类型(精度范围)
空/非空
约束条件
菜品编号m_id
int
非空
主键,自动自增
菜品名称m_name
varchar(10)
非空
菜品类别m_type
int
非空
Check约束,0表示冷菜,1表示热菜
菜品说明m_inst
varchar(200)
非空
菜品图片m_pic
varchar(50)
非空
菜品单价m_price
numeric(9,2)
非空
补充说明
3.4.3表users
表名
用户表users
列名
数据类型(精度范围)
空/非空
约束条件
用户编号u_id
int
非空
主键,能自动增长
用户名u_name
varchar(10)
非空
用户密码u_password
varchar(10)
非空
用户地址u_address
varchar(50)
非空
用户电话u_tel
varchar(15)
非空
补充说明
3.4.4表bag
表名
购物车表bag
列名
数据类型(精度范围)
空/非空
约束条件
购物车编号b_id
int
非空
菜品编号b_mid
int
非空
与menu.mid相关
菜品数量b_num
int
非空
用户编号b_time
varchar(30)
非空
补充说明
3.4.5表manage
表名
用户意见表manage
列名
数据类型(精度范围)
空/非空
约束条件
管理员名字m_name
varchar(10)
非空
主键
管理员密码m_password
varchar(10)
非空
补充说明
3.5安全性设计
数据库对该应用建立单独表空间,此应用的所有对象均存放在该表空间。
设置用户foodUser通过密码访问,作为此应用的模式,并提供给前台应用访问数据库。
该用户具有对此应用所有数据库对象的完全访问权限。
对于前台应用的用户,密码以MD5密文形式存储,避免明文泄露。
此系统的不足为提供给前台应用帐户权限过高,如果泄露,数据库将完全暴露。
3.6数据库管理与维护说明
该数据库,没有特殊的管理和维护,只要做简单的正常维护即可。
4界面设计
4.1界面关系图
4.2主界面
进行用户和管理员的登录
4.3子界面——用户注册界面
进行用户的注册
4.4子界面——菜品详情介绍界面
用户登录后进入的菜单显示界面,该界面是动态生成的。
4.5子界面——单个菜品信息界面
户单击菜单页面的某一菜品时进行该菜品的详细显示。
4.6子界面——购物车信息界面
用户购买菜品后进入该购物车界面进行购买菜品及用户信息的查询。
4.7子界面——管理员对菜的管理界面
管理员登录后进入该界面进行菜单的查询。
4.7子界面——管理员对菜的更改界面
管理员对某一菜品进行更改的界面。
4.8退出界面
用户或管理员完成所有操作后进入该界面。
4.10美学设计
整个页面给人一目了然的感觉,清新自然,功能完善。
布局美观、操作方便高效,主次分明。
文字容易阅读。
行间距、字体大小等通过样式表统一控制。
页面链接根据不同功能、不同状态用不同颜色、状态标志,增加页面层次。
4.11界面资源设计
通过网络采集了相关资料,并且通过Dreamweaver的整合,使得界面更加丰富,具有更好的视觉感受!
5系统设计
5.1模块命名规则
类:
均以实现功能的相关英文单词组成。
采用单词首字母大写形式命名。
包:
均采用小写形式。
变量、方法:
第一个单词小写,后面单词首字母大写。
5.2模块汇总
5.2.1模块汇总表
子系统db(包)数据访问层
模块名称
功能简述
数据库连接类
DBGet.java
该类主要用于对数据库的连接,关闭等的方法实现
子系统mothed(包)数据访问层
模块名称
功能简述
用户相关操作类
UsersMethod.java
该类用于实现与用户有关的访问数据库的方法,实现对用户信息数据的保存和读取。
菜单信息管理类
MenuMethod.java
该类用于实现与菜单信息管理有关的访问数据库的方法,实现对菜单信息数据的保存和读取。
购物车信息管理类
CartMethod.java
该类用于实现购物车信息有关的访问数据库的方法,实现对购物车信息数据的保存和读取。
管理员相关操作类:
ManageMethod.java
该类用于实现与管理员操作有关的方法,实现对菜品的增删改查。
子系统bean(包)实体对象
模块名称
功能简述
用户信息实体类
UsersBean.Java
该包中的类为业务逻辑层和数据访问层提供接口,以便接收、返回相应操作的数据,每个类对应数据库中的表,类中的变量与表中的元素相对应,包含get,set方法。
set方法接收相应类型数据,get方法返回相应类型数据。
菜单信息实体类
MenuBean.java
购物车信息实体类
CartBean.java
管理员信息实体类
ManageBean.java
子系统biz(包)业务逻辑层
模块名称
功能简述
登陆
LoginServlet
通过登录页面提交过来的信息判断用户信息的正确性,并转入相应的页面。
注册
UserInServlet
通过注册页面提交用户注册信息。
菜单显示
MenuShowServlet
获得菜单信息列表后转入菜单显示页面进行显示。
菜品信息详情显示
MenuEachServlet
通过上一层页面传递的参数获取相应的菜品详细信息的数据转入菜品详细信息显示页面进行显示。
购物车显示
CartShowServlet
通过上层页面传递的搜索条件,对信息经行查询,并转入相应的信息列表界面。
管理员添加菜品
AddMenuServlet
通过添加菜品页面提交的菜品信息进行添加,并转入相应的显示页面进行显示。
管理员修改菜品
AltMenuServlet
通过修改菜品页面提交的菜品信息进行添加,并转入相应的显示页面进行显示。
管理员删除菜品
DelMenuServlet
通过显示页面提交的被删除菜品的编号进行删除,并转入相应的显示页面进行显示。
5.2.2模块关系图
5.3程序结构
5.3.1数据库连接类
类名称
DBGet
类功能
该类主要用于对数据库的连接,关闭等的方法实现
方法
输入
输出
说明
getConnection静态
Connection
建立连接
closeConnection静态
Connection
关闭Connection对象
closePreparedStatement静态
PreparedStatement
关闭PreparedStatement对象
closeResultSet静态
ResultSet
关闭ResultSet对象
算法与程序逻辑
接口
Servlet接口
补充说明
5.3.2用户相关操作类
类名称
UsersMethod
类功能
该类用于实现与用户有关的访问数据库的方法,实现对用户信息数据的保存和读取。
方法
输入
输出
说明
isExist()
Stringname,Stringpassword
boolean
验证登陆信息是否正确
isPut()
UserBean
boolean
用户注册
usernameExists()
stringname
boolean
用户名是否存在
算法与程序逻辑
接口
Servlet接口
补充说明
5.3.3菜单信息管理类
类名称
MenuMethod
类功能
该类用于实现与菜单信息发布有关的访问数据库的方法,实现对菜单信息数据的保存和读取。
方法
输入
输出
说明
showMenu
ArrayList
查询菜单内容
算法与程序逻辑
调用ShowMenu()方法从数据库中把所有的菜品信息以表格的形式显示出来。
接口
Servlet接口
补充说明
5.3.4购物车信息管理类
类名称
CartMethod
类功能
该类用于实现购物车有关的访问数据库的方法,实现对购物信息数据的保存和读取。
方法
输入
输出
说明
showCart()
Stringtime
ArrayList
显示购物车
addCart()
CartBean
int
向购物车添加菜品
sameCart()
CartBean
int
查看购物车中是否有相同菜品
upCart()
CartBean,intnum
int
当购物车中已有当前购买的菜品时,对原纪录进行修改
time()
String
获取当前用户登录时间
getB_mname()
Stringb_mid
String
查询菜品名称
算法与程序逻辑
接口
Servlet接口
补充说明
5.3.5管理员操作管理类
类名称
ManageMethod
类功能
该类用于实现与用户操作有关的访问数据库的方法,实现对菜单的增删改查。
方法
输入
输出
说明
isExist()
Stringname,Stringpassword
boolean
判断管理员是否存在
isPut()
MenuBean
boolean
管理员对菜品的添加
Del()
Stirngmid
boolean
管理员对菜品的删除
Alt()
MenuBean
boolean
管理员对菜品的修改
算法与程序逻辑
接口
Servlet接口
补充说明
5.3.6用户信息实体类
类名称:
UsersBean
5.3.7菜单信息实体类
类名称:
MenuBean
5.3.8购物车信息实体类
类名称:
CartBean
5.3.9管理员信息实体类
类名称:
ManageBean
类名称
方法
输入
输出
说明
UsersBean
对相应的每个实体类定义每个变量的get()和set()的方法
输入相应类型变量
输出相应类型变量
MenuBean
CartBean
ManageBean
类功能
为业务逻辑层和数据访问层提供接口,以便接收,返回相应操作的数据,每个类对应数据库中的表,类中的变量与表中的元素相对应,包含get,set方法。
算法与程序逻辑
set方法接收相应类型数据,get方法返回相应类型数据。
接口
补充说明
6系统实现
6.1连接数据库
publicstaticConnectiongetConnection(){
Connectionconn=null;
try{
Class.forName(DRIVER_CLASS);
Conn=DriverManager.getConnection(DATABASE_URL,DATABASE_USRE,DATABASE_PASSWORD);
}catch(ClassNotFoundExceptionex){
System.out.println(ex.toString()+"getConnection");
}catch(SQLExceptionex){
System.out.println(ex.getMessage()+"getConnection");
}
returnconn;
}
6.2关闭数据库
6.2.1关闭Connection对象
publicstaticvoidcloseConnection(Connectionconn){
try{
if(conn!
=null){
conn.close();
}
}catch(SQLExceptionex){
System.out.println(ex.getMessage()+"closeConnection");
}
}
6.2.2关闭PreparedStatement对象
publicstaticvoidclosePreparedStatement(PreparedStatementps){
try{
if(ps!
=null){
ps.close();
}
}catch(SQLExceptionex){
System.out.println(ex.getMessage()+"closePreparedStatement");
}
}
6.2.3关闭ResultSet对象
publicstaticvoidcloseResultSet(ResultSetrs){
try{
if(rs!
=null){
rs.close();
}
}catch(Exceptionex){
System.out.println(ex.toString()+"closeResultSet");
}
}
6.3用户登录publicintisExist(Stringname,Stringpassword)
Stringsql="select*fromuserswhereu_name=?
andu_password=?
";
ps=conn.prepareStatement(sql);
ps.setString(1,name);
ps.setString(2,password);
rs=ps.executeQuery();
if(rs.next()){
returnrs.getInt("u_id");
}else{
return0;
}
6.4查询菜单信息publicArrayListshowMenu(
Stringsql="Select*frommenu";
ps=conn.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next()){
MenuBeanmb=newMenuBean();
mb.setM_id(rs.getString("m_id"));
mb.setM_name(rs.getString("m_name"));
mb.setM_type(rs.getString("m_type"));
mb.setM_inst(rs.getString("m_inst"));
mb.setM_pic(rs.getString("m_pic"));
mb.setM_price(rs.getString("m_price"));
al.add(mb);
}
6.5查询购物车信息publicArrayListshowCart(Stringtime)
根据用户登录时间确定当前要查看的购物车
Stringsql="Select*frombag,menuwherebag.b_mid=menu.m_idandb_time=?
";
ps=conn.prepareStatement(sql);
ps.setString(1,time);
rs=ps.executeQuery();
while(rs.next()){
CartBeancb=newCartBean();
cb.setB_id(rs.getString("b_id"));
cb.setB_mid(rs.getString("b_mid"));
cb.setB_num(rs.getString("b_num"));
cb.setB_time(rs.getString("b_time"));
cb.setB_mname(rs.getString("m_name"));
cb.setB_price(rs.getString("m_price"));
cal.add(cb);
}
6.6添加购物车中菜品信息publicintaddCart(CartBeancb)
CartMethodcm=newCartMethod();
intnum=cm.sameCart(cb);
if(num!
=0){
returncm.upCart(cb,num);
}else{
Stringsql="insertintobagvalues(?
?
?
?
)";
ps=conn.prepareStatement(sql);
ps.setString(1,cb.getB_id());
ps.setString(2,cb.getB_mid());
ps.setString(3,cb.getB_num());
ps.setString(4,cb.getB_time());
clo=ps.executeUpdate();
returnclo;
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 java 电子 实践 文档
![提示](https://static.bdocx.com/images/bang_tan.gif)