博主介绍:本人专注于Android/java/数据库/微信小程序技术领域的开发,以及有好几年的计算机毕业设计方面的实战开发经验和技术积累;尤其是在安卓(Android)的app的开发和微信小程序的开发,很是熟悉和了解;本人也是多年的Android开发人员;希望我发布的此篇文件可以帮助到您;
🍅文章末尾获取源码下载方式🍅
功能演示
1:后台演示
2:客户端演示
一、项目介绍
管理员身份功能介绍:
1:用户管理:管理用户的注册信息
2:信息管理:添加和查看类型,美食以及订单信息网页前端介绍:
1:注册模块,用户在使用软件前需要进行用户信息的注册
2:用户登录:用户通过自己的注册信息进行软件的登录
3:美食信息:用户可以查看发布的美食信息
4:收藏美食:用户可以对美食信息进行收藏
5:购物车:用户可以把自己喜欢的美食添加到购物车
6:我的订单:用户可以对自己喜欢的美食信息进行结算
7:个人信息:用户可以浏览个人信息;
二、运行环境
1:使用Idea进行开发;
2:mysql数据库进行数据存储;
3:需要jdk1.8以上
三、使用技术
总体设计逻辑和思路:
1:先设计数据库表文件
2:写服务端jsp页面以及写api接口给客户端提供数据
3:完成后台服务端的数据交互,也就是jsp页面数据的存储和显示
4:进行客户端页面的开发;
5:进行客户端对api接口的调用,也就是获取数据库的数据以及在客户端进行显示网页前端:
1:使用html控件完成界面的显示
2:使用java代码完成功能的数据和逻辑交互3:使用css代码完成布局页面的修饰
3:使用http网络请求完成数据的请求;
4:使用json数据解析完成客户端数据的回调和显示服务端后台:
1:使用mysql完成数据的存储
2:使用jdbc完成数据库和代码的逻辑交互
3:使用jsp完成网页数据的显示
4:使用java代码完成api接口的编写以及以及数据的回调
四、数据库设计
/*
Navicat MySQL Data Transfer
Source Server : mydata
Source Server Version : 50528
Source Host : localhost:3306
Source Database : ssmdb
Target Server Type : MYSQL
Target Server Version : 50528
File Encoding : 65001
Date: 2023-09-14 11:33:58
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for addresstb
-- ----------------------------
DROP TABLE IF EXISTS `addresstb`;
CREATE TABLE `addresstb` (
`addressId` int(11) NOT NULL AUTO_INCREMENT,
`addressName` varchar(255) DEFAULT NULL,
`addressInfor` varchar(255) DEFAULT NULL,
PRIMARY KEY (`addressId`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of addresstb
-- ----------------------------
INSERT INTO `addresstb` VALUES ('1', '大雁塔', '西安市雁塔区小寨东路');
-- ----------------------------
-- Table structure for cartb
-- ----------------------------
DROP TABLE IF EXISTS `cartb`;
CREATE TABLE `cartb` (
`carId` int(11) NOT NULL AUTO_INCREMENT,
`carMsgId` int(11) DEFAULT NULL,
`carUserId` int(11) DEFAULT NULL,
PRIMARY KEY (`carId`)
) ENGINE=InnoDB AUTO_INCREMENT=135 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of cartb
-- ----------------------------
INSERT INTO `cartb` VALUES ('1', '18', '104');
-- ----------------------------
-- Table structure for collecttb
-- ----------------------------
DROP TABLE IF EXISTS `collecttb`;
CREATE TABLE `collecttb` (
`collectId` int(11) NOT NULL AUTO_INCREMENT,
`collectMsgId` int(11) DEFAULT NULL,
`collectUserId` int(11) DEFAULT NULL,
PRIMARY KEY (`collectId`)
) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of collecttb
-- ----------------------------
INSERT INTO `collecttb` VALUES ('23', '19', '104');
INSERT INTO `collecttb` VALUES ('24', '19', '104');
INSERT INTO `collecttb` VALUES ('25', '19', '104');
INSERT INTO `collecttb` VALUES ('26', '23', '104');
INSERT INTO `collecttb` VALUES ('27', '23', '104');
INSERT INTO `collecttb` VALUES ('28', '20', '104');
-- ----------------------------
-- Table structure for ordertb
-- ----------------------------
DROP TABLE IF EXISTS `ordertb`;
CREATE TABLE `ordertb` (
`orderId` int(11) NOT NULL AUTO_INCREMENT,
`orderMessageId` varchar(100) DEFAULT NULL,
`orderMessageMoney` varchar(255) DEFAULT NULL,
`orderUserId` varchar(100) DEFAULT NULL,
`orderUserName` varchar(255) DEFAULT NULL,
`orderAddress` varchar(500) DEFAULT NULL,
`orderCreatime` varchar(100) DEFAULT NULL,
PRIMARY KEY (`orderId`)
) ENGINE=InnoDB AUTO_INCREMENT=41 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of ordertb
-- ----------------------------
INSERT INTO `ordertb` VALUES ('27', '19,17,24', '130', '104', '我是吃货', '小明-15288889999-西安市雁塔区', '2023-08-23 16:02');
INSERT INTO `ordertb` VALUES ('28', '24', '5', '104', '卖苹果的小女孩', '小明-15288889999-西安市雁塔区', '2023-08-23 16:39');
INSERT INTO `ordertb` VALUES ('29', '17', '66', '104', '卖苹果的小女孩', '小明-15288889999-西安市雁塔区', '2023-08-23 16:40');
INSERT INTO `ordertb` VALUES ('30', '24,17', '71', '104', '卖苹果的小女孩', '小明-15288889999-西安市雁塔区', '2023-08-28 14:42');
INSERT INTO `ordertb` VALUES ('37', '19,17', '125', '104', '卖苹果的小女孩', '小明-15288889999-西安市雁塔区', '2023-08-28 15:16');
INSERT INTO `ordertb` VALUES ('38', '23', '56', '104', '卖苹果的小女孩', '小明-15288889999-西安市雁塔区', '2023-08-28 16:36');
INSERT INTO `ordertb` VALUES ('39', '20', '56', '104', '卖苹果的小女孩', '小明-15288887777-西安市雁塔', '2023-08-28 16:48');
INSERT INTO `ordertb` VALUES ('40', '21', '29', '105', 'codefood', '多多小区-15249243001-西安市雁塔区', '2023-09-14 11:24');
-- ----------------------------
-- Table structure for shoptb
-- ----------------------------
DROP TABLE IF EXISTS `shoptb`;
CREATE TABLE `shoptb` (
`shopId` int(11) NOT NULL AUTO_INCREMENT,
`shopName` varchar(255) DEFAULT NULL,
`shopMoney` varchar(255) DEFAULT NULL,
`shopTypeId` varchar(255) DEFAULT NULL,
`shopTypeName` varchar(255) DEFAULT NULL,
`shopMessage` varchar(255) DEFAULT NULL,
`shopImage` varchar(255) DEFAULT NULL,
PRIMARY KEY (`shopId`)
) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of shoptb
-- ----------------------------
INSERT INTO `shoptb` VALUES ('10', '66', '66', '27', '图书', '666', 'upload/20230727102308552.jpg');
INSERT INTO `shoptb` VALUES ('16', '信息', '我的数据上', '29', '冷饮', '666', 'upload/20230727105732068.jpg');
INSERT INTO `shoptb` VALUES ('17', '图书', '66', '27', '图书', '我的数据', 'upload/20230727112847739.jpg');
INSERT INTO `shoptb` VALUES ('18', '好吃的饭', '29', '30', '零食', '好吃的饭好吃的饭好吃的饭好吃的饭好吃的饭好吃的饭好吃的饭好吃的饭好吃的饭好吃的饭好吃的饭好吃的饭好吃的饭好吃的饭好吃的饭好吃的饭好吃的饭好吃的饭', 'upload/20230809145037824.jpg');
INSERT INTO `shoptb` VALUES ('19', '豆豆丝', '59', '30', '零食', '豆豆丝豆豆丝豆豆丝豆豆丝豆豆丝豆豆丝豆豆丝豆豆丝豆豆丝豆豆丝豆豆丝豆豆丝豆豆丝豆豆丝豆豆丝豆豆丝豆豆丝豆豆丝豆豆丝豆豆丝豆豆丝豆豆丝豆豆丝', 'upload/20230809145125595.jpg');
INSERT INTO `shoptb` VALUES ('20', '我的数据', '56', '30', '零食', '我的数据我的数据我的数据我的数据我的数据我的数据我的数据我的数据我的数据我的数据我的数据我的数据我的数据我的数据我的数据我的数据我的数据我的数据我的数据我的数据我的数据我的数据我的数据我的数据我的数据', 'upload/20230809145151606.jpg');
INSERT INTO `shoptb` VALUES ('21', '蔬菜', '29', '29', '冷饮', '蔬菜蔬菜蔬菜蔬菜蔬菜蔬菜蔬菜蔬菜蔬菜蔬菜蔬菜蔬菜蔬菜蔬菜蔬菜蔬菜蔬菜蔬菜蔬菜蔬菜蔬菜蔬菜蔬菜蔬菜蔬菜蔬菜蔬菜蔬菜蔬菜蔬菜', 'upload/20230809145633126.jpg');
INSERT INTO `shoptb` VALUES ('22', '美食', '56', '30', '零食', '美食美食美食美食美食美食美食美食美食美食美食美食美食美食美食美食美食美食美食美食美食美食美食美食美食美食美食美食美食美食美食美食美食', 'upload/20230809145648799.png');
INSERT INTO `shoptb` VALUES ('23', '苹果', '56', '30', '零食', '项目模块主要有用户模块可以实现注册,个人信息修改;产品模块实现商品信息发布;购物车模块实现添加商品,删除商品;跑腿服务模块实现需求发布,抢单功能;学习模块实现笔记上传,约办学习小组。', 'upload/20230809145812566.jpg');
INSERT INTO `shoptb` VALUES ('24', '香蕉', '5', '30', '零食', '项目模块主要有用户模块可以实现注册,个人信息修改;产品模块实现商品信息发布;购物车模块实现添加商品,删除商品;跑腿服务模块实现需求发布,抢单功能;学习模块实现笔记上传,约办学习小组。', 'upload/20230809145826480.jpg');
INSERT INTO `shoptb` VALUES ('25', '好吃的美食', '66', '30', '零食', '好吃的美食好吃的美食好吃的美食好吃的美食好吃的美食好吃的美食好吃的美食好吃的美食好吃的美食好吃的美食好吃的美食好吃的美食好吃的美食好吃的美食好吃的美食好吃的美食好吃的美食好吃的美食好吃的美食好吃的美食好吃的美食好吃的美食', 'upload/20230914112320756.jpg');
-- ----------------------------
-- Table structure for typetb
-- ----------------------------
DROP TABLE IF EXISTS `typetb`;
CREATE TABLE `typetb` (
`typeId` int(50) NOT NULL AUTO_INCREMENT,
`typeName` varchar(255) DEFAULT NULL,
PRIMARY KEY (`typeId`)
) ENGINE=InnoDB AUTO_INCREMENT=41 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of typetb
-- ----------------------------
INSERT INTO `typetb` VALUES ('27', '图书');
INSERT INTO `typetb` VALUES ('28', '甜点');
INSERT INTO `typetb` VALUES ('29', '冷饮');
INSERT INTO `typetb` VALUES ('30', '零食');
INSERT INTO `typetb` VALUES ('34', '川菜');
INSERT INTO `typetb` VALUES ('35', '粤菜');
INSERT INTO `typetb` VALUES ('36', '湘菜');
INSERT INTO `typetb` VALUES ('37', '色菜');
INSERT INTO `typetb` VALUES ('38', '闽菜');
INSERT INTO `typetb` VALUES ('39', '陕菜');
INSERT INTO `typetb` VALUES ('40', '图书0.0');
-- ----------------------------
-- Table structure for usertb
-- ----------------------------
DROP TABLE IF EXISTS `usertb`;
CREATE TABLE `usertb` (
`uid` int(255) NOT NULL AUTO_INCREMENT,
`uname` varchar(200) CHARACTER SET utf8 DEFAULT NULL,
`uphone` varchar(100) CHARACTER SET utf8 DEFAULT NULL,
`upswd` varchar(200) CHARACTER SET utf8 DEFAULT NULL,
`utime` varchar(300) CHARACTER SET utf8 DEFAULT NULL,
PRIMARY KEY (`uid`)
) ENGINE=InnoDB AUTO_INCREMENT=106 DEFAULT CHARSET=latin1;
-- ----------------------------
-- Records of usertb
-- ----------------------------
INSERT INTO `usertb` VALUES ('88', '管理员', 'admin', '123456', '2021-01-27 12:26');
INSERT INTO `usertb` VALUES ('90', 'Tomcat', '15249243002', '123456', '2021-01-27 12:26');
INSERT INTO `usertb` VALUES ('95', '李老师', '152492412343', '123456', '2023-07-26 09:09');
INSERT INTO `usertb` VALUES ('104', '卖苹果的小女孩', '15249241001', '123456', '2023-08-10 17:00');
INSERT INTO `usertb` VALUES ('105', 'codefood', '15249241002', '123456', '2023-09-14 11:23');
五、部分代码
首页代码
<%@ page import="com.code.model.ShopModel" %>
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
String path = request.getContextPath();
%>
<html>
<head>
<title>$Title$</title>
<link rel="stylesheet" href="css/index.css">
<link rel="stylesheet" href="../css/layui.css">
<script src="/js/layui.js"></script>
<script >
function lookShop(shopmsg) {
console.log("--------:"+shopmsg);
}
</script>
<script>
layui.use('carousel', function () {
var carousel = layui.carousel;
//建造实例
carousel.render({
elem: '#test1'
, width: '100%' //设置容器宽度
, arrow: 'always' //始终显示箭头
, height: '400px'
, anim: 'left' //切换动画方式
});
});
</script>
<style>
* {
margin: 0;
padding: 0;
}
.bgMain {
height: 51px;
background-image: url("../img/pagebg.png");
text-align: center;
}
.fenleiUL li {
float: left;
width: 180px;
background: #6ECF62;
margin-left: 2px;
height: 51px;
text-align: center;
color: white;
justify-content: center;
margin-top: 1px;
display: flex;
flex-direction: column;
}
.fenleiUL li a {
font-weight: bold;
color: white;
text-decoration: none;
}
.contentFeiLei {
height: 1082px;
width: 100%;
display: flex;
flex-direction: row;
justify-content: center;
background: white;
padding-top: 40px;
}
.contentLeft {
width: 530px;
background: #fff;
height: 320px;
padding-left: 0px;
margin: 0;
}
.contentRigth {
background-color: #faffee;
width: 530px;
height: 320px;
margin-left: 10px;
background: white;
float: left;
}
.neirongMain a {
line-height: 44px;
}
.newsTip li {
height: 30px;
background: url(http://view.gzjunyu.com/demo869/templates/web/images/img3.png) left center no-repeat;
padding-left: 20px;
line-height: 30px;
overflow: hidden;
font-size: 14px;
}
.shopList {
float: left;
width: 1082px;
}
.shopList li {
float: left;
display: flex;
flex-direction: column;
justify-items: center;
align-items: center;
font-size: 15px;
}
</style>
</head>
<body>
<iframe MARGINWIDTH=0 MARGINHEIGHT=0 HSPACE=0 VSPACE=0 FRAMEBORDER=0 SCROLLING=no src="../toplayout.jsp" height="100px"
width="100%" style="z-index: 99"></iframe>
<div class="layui-carousel" id="test1" style="margin-top: 10px">
<div carousel-item>
<div style="background: #40ac44"><img src="http://view.gzjunyu.com/demo869/upfiles/201905/30/a87f6bff216223a0d.jpg"></div>
<div style="background: #9e80ac"><img src="http://view.gzjunyu.com/demo869/upfiles/201905/30/a0a161bf58c14e51a.jpg"></div>
</div>
</div>
<div style="display: flex;flex-direction: column;justify-content: center;background-color: white;align-items: center">
<p style="font-size: 30px;padding: 30px">新品推荐</p>
<div>
<ul class="shopList" style="text-align: center">
<c:forEach items="${allData}" var="model" varStatus="sta">
<li>
<img src="${model.shopimage}" style="width: 180px;margin: 15px;
height: 170px;">
<a href="findByIdShop.do?id=${model.shopid}">${model.shopname}</a>
</li>
</c:forEach>
</ul>
</div>
</div>
<div class="contentDIV">
<div class="contentLeft">
<p style="color: #1E9FFF;margin-top: 40px;background: white">关于我们</p>
<p style="color: #1E9FFF;background: white">ABOUT US</p>
<p style="margin-top: 30px;line-height: 25px;background: white">
基于SpringMVC+SpringBoot+MyBatis的网上订餐系统
</p>
</div>
<%--<div class="contentRigth"></div>--%>
</div>
</body>
</html>
六、浏览更多Android毕业设计
更多毕业设计可以浏览我的个人主页哦!
七、源码咨询
大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻获取联系方式👇🏻👇🏻👇🏻