一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第25天,点击查看活动详情。
课设:基于jsp的手机商城的设计与实现(2)
系统设计
系统的功能模块
手机商城系统包括两大模块:登录模块和注册模块。
登录模块:该模块下面包括5部分,手机商品的浏览、分类查看手机商品、查询手机商品、购买手机商品、退出系统。用户在登录商城系统后可直接在页面进行商品的浏览。如果已经有了目标品牌,可通过分类查看单独浏览该品牌的手机。查询手机只需要输入手机型号点击查询按钮即可进行相关手机的查询操作。在确定好要购买的手机后下单付款即可,可通过查询手机后购买,也可以在浏览过程中直接购买。退出系统只需要点击退出按钮即可以退出该系统。
注册模块:该模块分为输入用户名和输入密码2部分。都是用户进行输入的操作,输入完毕后点击确定按钮即可完成注册。
该系统的功能模块图如图所示:
该系统的微信支付流程图如图所示:
系统包的设计
1.数据库包com.hkd.dao和com.hkd.daoimp
该包里面放入有关操作数据库的Java类;
2.实体类包com.hkd.entity:
该包里面放入与数据库相对于的Java类;
3.中间包com.hkd.service和com.hkd.serviceimp:
该包里面放入了有关中间操作的Java类;
4.servlet包com.hkd.servlet
该包里面放入从后台调业务给前台的Java类;
5.工具包com.hkd.utils
该包里面放入功能实现的Java类;
具体功能类的设计
1.数据库中数据操作
(1) OrderDao.java,PhoneDao.java,SignonDao.java等主要作用是连接数据库以及对数据库进行一系列的操作。
(2)DataBase.java主要是放置了连接数据库时所需要的信息。
该类放置的主要信息如下:
public static String driver="com.mysql.cj.jdbc.Driver";
public static String url="jdbc:mysql://localhost:3306/phonestore?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC";
public static String username="root";
public static String pwd="123";
这些数据单独存放,当信息需要修改的时候非常方便。
2.程序中的数据操作
(1)index.html里面编写了用来显示登陆注册页面的程序;
(2)zhuye.html里面编写了登录后所显示的主页界面;
(3)order.html里面编写了购买商品的提交订单所显示的界面;
(4)pay.html里面编写了微信二维码付款所显示的界面;
系统数据库设计
数据库是由多个相互关联的数据表组成,本数据库利用MySQL实现并完成数据库的设计,在本系统中包括如下:确定数据库内所有数据表的名称及表内所含字段的名称、类型、长度、主键及是否为空;确定数据库文件是否需要建立索引、是否具有外键数据表等等。
数据库表设计
1.登录注册(signon)用于存储用户的相关内容,如表2-1所示:
表2-1 登陆注册表
| 序号 | 字段名称 | 字段说明 | 类型 | 位数 | 属性 |
|---|---|---|---|---|---|
| 1 | username | 用户名 | varchar | 20 | 必填,非空 |
| 2 | pwd | 密码 | varchar | 20 | 必填,非空 |
2.手机商品信息表(phoneinfo)用于存储手机的相关信息,如表2-2所示:
表2-2 手机详情信息表
| 序号 | 字段名称 | 字段说明 | 类型 | 位数 | 属性 |
|---|---|---|---|---|---|
| 1 | pid | 手机编号 | int | 非空, | |
| 2 | phonename | 手机名称 | varchar | 20 | 非空 |
| 3 | price | 手机价格 | double | 非空 | |
| 4 | description | 手机描述 | varchar | 30 | 非空 |
| 5 | phoneimage | 手机图片所在位置 | varchar | 20 | 非空 |
CREATE DATABASE /*!32312 IF NOT EXISTS*/`phonestore` /*!40100 DEFAULT CHARACTER SET utf8
USE `phonestore`;
DROP TABLE IF EXISTS `orderinfo`;
CREATE TABLE `orderinfo` (
`orderid` varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`payment` double DEFAULT NULL,
`username` varchar(20) DEFAULT NULL,
`buyermessage` varchar(150) DEFAULT NULL,
`receiverareaname` varchar(100) DEFAULT NULL,
`receivermobile` varchar(20) DEFAULT NULL,
`reciver` varchar(20) DEFAULT NULL,
`receiverzipcode` varchar(20) DEFAULT NULL,
`sellerid` varchar(20) DEFAULT NULL,
`goodsName` varchar(40) DEFAULT NULL,
`state` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into `orderinfo`(`orderid`,`payment`,`username`,`buyermessage`,`receiverareaname`,`receivermobile`,`reciver`,`receiverzipcode`,`sellerid`,`goodsName`,`state`) values ('1592822584524',4399,'zxj','快点发货','郑州市高新区长椿路11号','1388888888','张三','45000000','8900001','iphone','1'),('1592823144912',0.01,'zzz','快点发货','郑州市高新区长椿路11号','1388888888','张三','45000000','8900001','huawei','3'),('1592892634592',3599,'zyy','快点发货','郑州市高新区长椿路11号','1388888888','张三','45000000','8900001','小米10','3'),('1592915643103',3599,'zyy','快点发货','郑州市高新区长椿路11号','1388888888','张三','45000000','8900001','小米10','3'),('1592917166638',0.01,'西门吹雪','快点发货','郑州市高新区长椿路11号','1388888888','张三','45000000','8900001','手机','2'),('1592932737936',3599,'admin','快点发货','郑州市高新区长椿路11号','1388888888','张三','45000000','8900001','小米10','3');
DROP TABLE IF EXISTS `phoneinfo`;
CREATE TABLE `phoneinfo` (
`pid` int(11) DEFAULT NULL,
`phonename` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
`phoneimage` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
`price` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
`description` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
`username` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into `phoneinfo`(`pid`,`phonename`,`phoneimage`,`price`,`description`,`username`) values (NULL,'小米10','images\\m1.jpg','3599','骁龙865旗舰处理器',NULL),(NULL,'iphone11','images\\h11.jpg','4949','全网通4G手机',NULL),(NULL,'小米红米Note8pro','images\\m2.jpg','2050','6400万四摄4500mAh长续航',NULL),(NULL,'小米红米10Xpro','images\\m3.jpg','2439','5G双模4800万流光相机',NULL),(NULL,'小米红米K30pro','images\\m4.jpg','2699','全网通5G手机',NULL),(NULL,'iphone11pro','images\\h9.jpg','7599','超广角三摄',NULL),(NULL,'iphoneSE','images\\h10.jpg','3099','全网通4G手机',NULL),(NULL,'iPhone11proMAX','images\\h11.jpg','7798','6.5英寸全网通手机',NULL),(NULL,'华为nova6','images\\w1.jpg','2398','麒麟990处理器',NULL),(NULL,'华为p30','images\\w2.jpg','3599','麒麟980AI智能芯片',NULL),(NULL,'华为nova7SE','images\\w3.jpg','2339','全网通5G双模',NULL),(NULL,'华为Mate30','images\\w4.jpg','4999','麒麟990全网通4G手机',NULL);
DROP TABLE IF EXISTS `signon`;
CREATE TABLE `signon` (
`username` varchar(20) DEFAULT NULL,
`pwd` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into `signon`(`username`,`pwd`) values ('z11','111111'),('zxx','23456'),('zyy','123456'),('zxj','123456');
尾言
这是基于jsp的手机商城的设计与实现的系统设计部分以及部分数据库代码。