图4-6 网上订餐系统总体关系图
4.2数据库设计
本系统数据库通过MySQL Server5.1、Navicat 8 for MySQL图形化界面软件对数据库进行创建。
表4-1 菜品表(foods) 序号 1 2 3 4 5 6 7 8 9 字段名 id foodsname introduce price picture intime newGoods sale hit 字段类型 Bigint Varchar Text Decimal Varchar Datetime Int int int 长度 8 200 0 10 100 0 4 4 4 备注 Primary Key Not Null Not Nul Not Nul Not Nul Not Nul Not Nul Not Nul Not Nul 描述 菜品ID 菜品名称 菜品介绍 价格 图片 时间 新品 物价 浏览次数
表4-2后台管理员表(manager)
序号 1 2 3 字段名 id manager password 字段类型 int varchar varchar
11
长度 4 30 30 备注 Primary Key Not Null Not Null 描述 管理员ID 名字 密码
表4-3会员表(member) 序号 1 2 3 4 5 6 7 8 9 10 11 字段名 id username truename password city address postcode amount tel bdate email 字段类型 int varchar varchar varchar varchar varchar varchar decimal varchar date varchar 长度 4 20 20 20 20 20 200 10 20 0 100 备注 Primary Key Not Null Not Null Not Nul Not Nul Not Nul Not Nul Not Nul Not Nul Not Nul Not Nul 描述 用户ID 用户名 真实姓名 密码 城市 地址 邮编 消费额 电话 出身日期 邮箱 表4-4 详细订单表(orderdetail) 序号 1 2 3 4 5 6 字段名 id orderid goodsid goodsname price goodsnumber 字段类型 bigint bigint bigint varchar decimal int 长度 8 8 8 100 11 10 备注 Primary Key Not Null Not Null Not Null Not Null Not Null 描述 详细订单ID 订单ID 菜品ID 菜品名称 价格 菜品数量 表4-5 配送订单表(ordertable) 序号 1 2 3 4 5 7 8 9 10 11 字段名 id pay carry rebate zhuangtai bz intime gnumber memberid onumber 字段类型 bigint varchar varchar float varchar varchar timestamp smallint int varchar 长度 8 20 20 0 1 200 0 4 11 20 备注 Primary Key Not Null Not Null Not Nul Not Nul Not Nul Not Nul Not Nul Not Nul Not Nul 描述 订单ID 支付方式 运输方式 折扣 状态 备注 订货时间 品种数 用户ID 订单编号 表4-6 留言信息表(message) 序号 1 2 3 4 字段名 id username title content 字段类型 int varchar varchar varchar 长度 4 10 255 255 备注 Primary Key Not Null Not Null Not Null 描述 信息ID 用户名 主题 内容 12
4.3本章小结
本章主要介绍网上订餐系统的数据库设计。首先设计各表的设计图,然后略去各实体属性之后绘制出一个系统整体关系图,最后以表格的形式详细介绍orderdb数据库中每张表的字段名,字段类型、长度数据。
13
5.系统模块设计实现
5.1前台主要模块功能设计
订餐系统的前台主要为用户提供用户注册、登录、购物车、订单查询、查看菜品等功能。系统首页为top.jsp,界面如图5-1所示,它包括了导航、图片特效、推荐商品、网站公告、菜品销售top、留言六个部分。
图5-1 系统主页top.jsp
5.1.1数据库链接
在Java技术系列中,访问数据库的技术叫做JDBC,它提供了一系列的API,让用Java语言编写的代码连接数据库,对数据库的数据进行添加、删除、修改和查询。连接数据库代码如下:
public Connection conn; String url=\/orderdb?useUnicode=true&characterEncoding=gbk\ String username=\//连接数据库的用户名 String password=\//连接数据库的密码 //定义getConnection()方法获取连接 public Connection getConnection(){ try { Class.forName(\ conn=DriverManager.getConnection(url,username,password); } catch (Exception e) { 14
e.printStackTrace(); } return conn;} 5.1.2用户登录模块功能设计
用户浏览本系统的时候,无论你是要订餐、留言都必须先登录。如果你未登录进行相应的操作时,系统会提示你未登录,并且跳转到如图5-2 denglu.jsp登录界面,让你输入用户名和密码。如果不是系统中的会员用户,即可进行注册。
图5-2 denglu.jsp 用户登录界面
用户输入用户名和密码后,点击登录,会然后跳转到loginAction.jsp页面中处理,利用request.getParameter获取表单中的用户名和密码等信息。在登录界面会有一个判断,如果用户未输入用户名或密码就直接提交,会提示请输入用户名/密码,并且返回原来界面,主要代码:
if(name==\){ alert(\用户名不能为空\); document.loginform.name.focus(); return false; } 如果用户不是此系统的会员,那么就应该选择注册,如图5-3 register.jsp用户注册界面:
15