【javaWeb技术】·外卖点餐小程序(脚手架学习1·数据库)

news2024/9/19 9:41:46

🌈 个人主页:十二月的猫-CSDN博客
🔥 系列专栏: 🏀系统学javaWeb开发_十二月的猫的博客-CSDN博客

💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 

【免费】项目脚手架进个人主页下载!!!!  【javaWeb技术】专栏专用脚手架资源-CSDN文库

目录

1. Navicat

1.1 Navicat是什么

1.2 Navicat的使用

1.2.1 创建连接

1.2.1.1 创建连接:点击连接-》选择要连接的数据库-》建立连接

1.2.1.2 创建连接:输入MySQL连接账号-》和账号对应MySQL建立连接

1.2.2 创建数据库

1.2.2.1 创建数据库:选中连接名、右键、点击新建数据库;

2. 在数据库中建表

2.1 设置数据库

2.2 建立第一张表格admin

2.3 插入第一条admin记录 

2.4 创建第二个数据库表notice,并插入数据

3、在数据库中运行SQL语句

3.1 完整SQL语句如下:

3.2 运行SQL文件

5. 总结


1. Navicat

1.1 Navicat是什么

在学习数据库的时候,经常接触到Navicat这个管理数据库的工具。Navicat是以直觉化的图形用户界面而建的,可以让使用者安全并简单的方式创建、组织、访问并共用信息。它可以用来对本机或远程的MySQL、SQL server、SQLite、Oracle及PostgreSQL数据库进行管理及开发。

1.2 Navicat的使用

1.2.1 创建连接

我们知道,下载MySQL时会要求我们创建一个MySQL账号,一个MySQL就对应一个账号。

这个账号可以认为是连接账号

简单理解:想要连接本机的MySQL,必须要通过这个账号  

因此,我们在本机上使用MySQL,必须要通过这个账号和本机的MySQL建立连接

1.2.1.1 创建连接:点击连接-》选择要连接的数据库-》建立连接

1.2.1.2 创建连接:输入MySQL连接账号-》和账号对应MySQL建立连接

主机:要连接的数据库管理系统(MySQL、Oracle等)所在的位置(localhost指在本机上)

端口:这个连接所占用的端口

账户:数据库管理系统的账户

连接名习惯:

1、这里是和本机的MySQL建立连接,因此我的连接名字就叫做localhost_MySQL,3306是连接的端口号 。

2、后面如果是连其他服务器(非本机)上面的MySQL可以将localhost修改为对应服务器名字(例如:阿里服务器、华为云服务器)

3、如果连接的是Oracle数据库,则可以修改为localhost_Oracle

4、如果端口号不是3306,也可以直接修改连接名

1.2.2 创建数据库

通过上一步,我们已经和MySQL数据库创建了连接。因此,我们可以通过创建的连接在MySQL中创建数据库(MySQL是一个数据库管理系统)

1.2.2.1 创建数据库:选中连接名、右键、点击新建数据库;

1、脚手架中的数据库名字为:manager

2、字符集选择utf8mb4

3、排序规则如上图

得到数据库manager如下:

2. 在数据库中建表

2.1 设置数据库

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

1、names:设定数据库的字符类型为utf8mb4

2、 SET FOREIGN_KEY_CHECKS = 0;: 临时禁用外键约束检查。这样可以在删除和创建数据库时避免外键约束错误(因为外键约束,不让你删除一些表)

2.2 建立第一张表格admin

DROP TABLE IF EXISTS `admin`;
CREATE TABLE `admin`  (
  `id` int(10) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '用户名',
  `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '密码',
  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '姓名',
  `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '头像',
  `role` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '角色标识',
  `phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '电话',
  `email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '邮箱',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '管理员' ROW_FORMAT = DYNAMIC;

DROP TABLE IF EXISTS `admin`:

1、如果admin表格存在,则删除该表格

 AUTO_INCREMENT COMMENT 'ID':

1、auto_increment(自动增加):每添加一条记录该列指自动增加1

2、comment(注释):作用和java中的//类似,可以通过特殊语句查看数据库表格的注释

CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL :

1、character set:设定列值的字符类型

2、collate:设定列数据的排列方式

3、null default null:列值允许为null,且默认为null

ENGINE = InnoDB AUTO_INCREMENT = 2  ROW_FORMAT = DYNAMIC:

1、ENGINE = InnoDB:使用InnoDB存储引擎

2、AUTO_INCREMENT = 2:从2开始自动增加

3、ROW_FORMAT = DYNAMIC:在该存储引擎中采用dynamic的行存储格式

知识点拓展:

在 MySQL 中,尤其是 InnoDB 存储引擎中,行格式(Row Format)决定了数据如何在表中存储。不同的行格式适用于不同的场景,能够影响性能和存储效率。以下是 MySQL 中几种常见的行格式:

Compact

- 描述::
  - 这是 InnoDB 的默认行格式。
  - 采用紧凑的存储格式,优化了存储效率和性能。
  - 列的 NULL 标记和长度信息被压缩,适用于大多数常见的场景。
- 优点: 
  - 相对较高的存储效率和良好的性能。
  - 适合大多数应用。

Redundant

- 描述:
  - 这是旧版本 InnoDB 的默认行格式,已经不推荐使用。
  - 存储了冗余的列信息,数据存储方式不够紧凑。
- 优点:
  - 兼容性:对某些老旧应用或数据的兼容性较好。
- 缺点:
  - 存储效率较低。
  - 可能导致性能下降。

Dynamic

- 描述:
  - 行格式优化了存储可变长度列,如 `VARCHAR` 和 `TEXT` 列。
  - 大字段数据(如 `TEXT` 和 `BLOB` 类型)可以存储在独立的页中,而不是直接存储在行数据页中。
- 优点:
  - 更高的存储效率,尤其是对于包含大量大字段的表。
  - 支持更高的性能和更大的字段长度。
- 缺点:
  - 读取大字段时可能会涉及额外的页访问。

Compressed

- 描述:
  - 行数据经过压缩,以节省存储空间。
  - 压缩后,数据和索引都存储在压缩的格式中。
- 优点:
  - 大幅度减少存储需求。
  - 有助于减少 I/O 操作,因为需要读取的数据量减少了。
- 缺点:
  - 压缩和解压缩过程可能会增加 CPU 使用率。
  - 对写操作的性能影响可能较大。

2.3 插入第一条admin记录 

INSERT INTO `admin` VALUES (1, 'admin', 'admin', '管理员', 'http://localhost:9090/files/1697438073596-avatar.png','ADMIN', '13677889922', 'admin@xm.com');

2.4 创建第二个数据库表notice,并插入数据

DROP TABLE IF EXISTS `notice`;
CREATE TABLE `notice`  (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '标题',
  `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '内容',
  `time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '创建时间',
  `user` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '创建人',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '公告信息表' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Records of notice
-- ----------------------------
INSERT INTO `notice` VALUES (1, '今天系统正式上线,开始内测', '今天系统正式上线,开始内测', '2023-09-05', 'admin');
INSERT INTO `notice` VALUES (2, '所有功能都已完成,可以正常使用', '所有功能都已完成,可以正常使用', '2023-09-05', 'admin');
INSERT INTO `notice` VALUES (3, '今天天气很不错,可以出去一起玩了', '今天天气很不错,可以出去一起玩了', '2023-09-05', 'admin');

SET FOREIGN_KEY_CHECKS = 1;

注意:

1、开始:SET FOREIGN_KEY_CHECKS = 0;

      结束:SET FOREIGN_KEY_CHECKS = 1;

原因在于:操作过程中存在删除表的可能性,临时禁用外键约束检查,防止删除时报错

3、在数据库中运行SQL语句

3.1 完整SQL语句如下:

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table for admin
-- ----------------------------
DROP TABLE IF EXISTS `admin`;
CREATE TABLE `admin`  (
  `id` int(10) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '用户名',
  `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '密码',
  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '姓名',
  `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '头像',
  `role` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '角色标识',
  `phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '电话',
  `email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '邮箱',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '管理员' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Records of admin
-- ----------------------------
INSERT INTO `admin` VALUES (1, 'admin', 'admin', '管理员', 'http://localhost:9090/files/1697438073596-avatar.png','ADMIN', '13677889922', 'admin@xm.com');

-- ----------------------------
-- Table for notice
-- ----------------------------
DROP TABLE IF EXISTS `notice`;
CREATE TABLE `notice`  (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '标题',
  `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '内容',
  `time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '创建时间',
  `user` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '创建人',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '公告信息表' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Records of notice
-- ----------------------------
INSERT INTO `notice` VALUES (1, '今天系统正式上线,开始内测', '今天系统正式上线,开始内测', '2023-09-05', 'admin');
INSERT INTO `notice` VALUES (2, '所有功能都已完成,可以正常使用', '所有功能都已完成,可以正常使用', '2023-09-05', 'admin');
INSERT INTO `notice` VALUES (3, '今天天气很不错,可以出去一起玩了', '今天天气很不错,可以出去一起玩了', '2023-09-05', 'admin');

SET FOREIGN_KEY_CHECKS = 1;

3.2 运行SQL文件

右键manager-》运行SQL文件:

结果如下:

5. 总结

在下一篇文章中,我们将开始我们的项目学习!!!!

首先先学习项目的脚手架,我会对脚手架的代码进行深入的讲解

在充分理解脚手架的源码后,我们再基于脚手架进行外卖项目的开发 

如果想要学习,大家可以点个关注并订阅,跟着猫猫一起

你的点赞就是我更新的动力,如果觉得对你有帮助,辛苦友友点个赞,收个藏呀~~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1994877.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

将PPT中的元素保存为高清图片

PPT制作流程图,思维导图或者演示图片非常方便,本文主要记录如何将一个在PPT中画好的图片导出为高清图片。 1.在ppt中设计图片 以我在PPT中画的图片为例,将所有元素选中,右键组合,成为一个整体 2.另存为增强型元文件 …

文件系统管理问题总结

文件系统的基本组成 1.什么是linux文件系统 Linux 最经典的⼀句话是:「⼀切皆⽂件」,不仅普通的⽂件和⽬录,就连块设备、管道、socket 等,也 都是统⼀交给⽂件系统管理的。 Linux ⽂件系统会为每个⽂件分配两个数据结构&#…

畅捷通基于Flink的实时数仓落地实践

摘要:本文整理自畅捷通总架构师、阿里云MVP专家郑芸老师在 Flink Forward Asia 2023 中闭门会上的分享。内容主要为以下四部分: 业务背景数仓建设具体案例未来展望 一、业务背景 畅捷通是用友旗下成员企业,一直持续专注于小微企业的数字化转…

七夕情人节有什么好物推荐?五款心动数码产品推荐。

转眼间,七夕情人节即将来临,这个浪漫的节日是表达爱意、传递心意的最佳时刻!为了让爱意不再迷茫,团团精心挑选了一份情人节约会好物清单。这些精选产品,我亲自试用,确信它们能触动心弦,传递深情…

html+css 实现hover 3D按钮特效

前言:哈喽,大家好,今天给大家分享htmlcss 绚丽效果!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目…

《向量数据库指南》——To B大型知识系统的多租设计

To B大型知识系统的多租设计 这类场景中,租户数量一般比较少。比如企业内多个独立的业务团队或部门,如果他们都在提供不同的知识库服务,那么对于数据库中台团队,每一个这样的业务团队或部门都是一个租户。 在向量数据库层面,中台团队需要根据业务复杂度为每个租户分…

儿童餐椅 亚马逊美国站ASTM认证步骤

本政策适用的儿童餐椅 儿童餐椅是一种供三岁以下儿童使用的独立座椅。座椅表面超出地面 15 英寸以上,可提高儿童所坐高度,通常于儿童进食时使用。儿童餐椅可由塑料、木材或金属制成,通常配有软垫座。儿童餐椅有带托盘和不带托盘的款式&#…

口碑最好的洗地机排名?洗地机十大排名公开揭晓!

随着现在洗地机逐渐走入大众的眼睛,很多人已经开始寻找合适的洗地机,但是因为市面上的品牌太多了,宣传的噱头也比较多,因此很多人都比较迷糊,不知道应该选择怎样的洗地机!本文将公开揭晓洗地机领域的十大排…

数学建模--蒙特卡洛算法之电子管更换刀片寿命问题

目录 1.电子管问题重述 2.电子管问题分析 3.电子管问题求解 4.刀片问题重述 5.刀片问题分析 6.刀片问题求解 1.电子管问题重述 某设备上安装有4只型号规格完全相同的电子管,已知电子管寿命服从100~200h之间的均匀分布. 只要有一个电子管…

P5677 [GZOI2017] 配对统计(线段树爆改莫队)

[GZOI2017] 配对统计 - 洛谷 贵州的省选,线段树代码太长了,直接莫队启动。 时间复杂度O(n sqrt(n)) 加了个奇偶优化。 先按块排左指针。 同一块内右指针按照块的编号奇偶性决定升序或者降序。 核心思路 拓展左右指针 或者…

【Linux】(32)详解命名管道 | 日志管理 | 进程池2.0

目录 1. 介绍 2. 理解 3.运用 3.1 简易通信 makefile comm.hpp server.cc (服务端,读取显示) client.cc (客户端,写入) 3.2 日志 log.hpp 1. 定义日志级别 2. 实现日志函数 可变参数 3. 日志输出管理 3…

【经验分享】快速制图 AI + Mermaid

文章目录 【经验分享】快速制图 AI Mermaid使用教程选图改Prompt出图 【经验分享】快速制图 AI Mermaid 使用教程 选图 在Mermaid的Diagram Syntax中,选择需要转换的样式图,复制对应的示例代码: 改Prompt 请根据这份文档帮我制作一份…

镜舟科技与西南证券合作,构建极速、高效数据平台

《金融科技发展规划(2022-2025年)》明确了高质量推进金融数字化转型的总体思路,云计算、人工智能等新兴技术开始被广泛应用,提升金融服务的便捷性,但随着日益增长的数据体量,数据的存储和处理能力日渐。 数…

【前 K 个高频元素】python刷题记录

R4-排序篇 class Solution:def topKFrequent(self, nums: List[int], k: int) -> List[int]:#使用哈希表记录值,再sortdictdefaultdict(int)ret[]for num in nums:dict[num]1thesorted(dict.keys(),keylambda x:dict[x], reverseTrue)for i in range(k):ret.appe…

python-docx-template实现docx模板编程

1、python-docx-template简介 python-docx库来创建word文档,但是对于文档的修改功能并不灵活。python-docx-template 模块主要依赖两个库, python-docx用于读取,编写和创建子文档 , jinja2用于管理插入到模板docx中的标签 。 其基…

90天SSL证书时代来临的应对策略-SSL证书自动化运维

SSL证书有效期长期以来都是网络安全专业人士关注的重点,尤其是去年3月Google在CA/B论坛投票提案中提议将SSL证书的有效期限制在90天之后,毕竟这对高度依赖手动管理证书的企业影响巨大。本文将概述对证书有效期缩短的理解以及应对策略。 90天是最终的有效…

Opencv-绘制几何图形

1. 绘制圆形 1.1 circle()函数原型 void cv::circle(InputOutputArray img, Point center, int radius, const Scalar & color, int thickness 1, int lineType LINE_8, int shift 0 ) img:需要绘制圆形的图像。 center:圆形的圆心位置坐标。 …

Python中的 `continue` 语句:掌握循环控制的艺术

Python中的 continue 语句:掌握循环控制的艺术 下滑即可查看博客内容 🌈 欢迎莅临我的个人主页 👈这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地!🎇 🎓 博主简介:985高校的普通…

国产数据库备份恢复实现

数据库备份恢复是数据库高可用的基本能力,如何通过备份数据快速高效的恢复业务并且满足不同场景下的恢复需求,是各数据库厂商需要关注的要点。本文将介绍几种国产数据库的备份恢复功能,以加深了解。 1、数据库备份恢复方案 数据库备份是生产…

为什么选择在Facebook投放广告?

2024年了你还没对 Facebook 广告产生兴趣?那你可就亏大了! 今天这篇文章,我们会分享它对你扩大业务的好处。要知道,Facebook 广告凭借它庞大的用户群和先进的定位选项,已经是企业主们有效接触目标受众的必备神器。接下…