资讯 小学 初中 高中 语言 会计职称 学历提升 法考 计算机考试 医护考试 建工考试 教育百科
栏目分类:
子分类:
返回
空麓网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
空麓网 > 计算机考试 > 软件开发 > 后端开发 > Java

Java Web开发

Java 更新时间: 发布时间: 计算机考试归档 最新发布

Java Web开发

目录

系列文章

前言

一、数据库

二、MySQL

三、SQL

小结


系列文章

Java Web开发(Day1)

Java Web开发(Day2)

Java Web开发_异步处理以及前端中Vue框架的简单使用(Day3)

Java Web开发_Maven以及SpringBootWeb入门(Day4)

Java Web开发_请求响应与分层解耦(Day5)

前言

此博客主要记录在学习黑马程序员2023版JavaWeb开发课程的一些笔记,方便总结以及复习。

一、数据库

在上一节内容里面讲到的三层架构里面,dao层访问的数据是直接写上去的,但是实际应用开发当中呢是会去数据库中把数据提取出来展示。获得数据后再返回给前端页面。

数据库:DataBase(DB),是存储和管理数据的仓库。

那我们如何去操作管理数据库呢,就需要引入一个管理系统,我们一般称为数据库管理系统。而一般使用的编程语言就是SQL。

数据库管理系统:DataBase Management System  (DBMS),操纵和管理数据库的大型软件。

SQL:Structured Query Language,操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准。

 

 常用的数据库管理系统一般是Oracle(收费的大型数据库,Oracle公司的产品)、MySQL(开源免费的中小型数据库。Sun公司收购了MySQL,Oracle收购Sun公司,所以算起来也是Oracle公司的产品)、Microsoft SQL Server(MicroSoft公司收费的中型的数据库,C#、.net等语言常使用)、PostgreSQL(开源免费中小型的数据库)。一般大型公司会更常使用Oracle,性能会比较好。不过我们通常使用的话还是以MySQL偏多,但是学习上来说区别是不会太大的,因为大家都是以SQL语言为统一标准。

二、MySQL

MySQL官方提供了两种不同的版本:一种是商业版本:收费,可以试用30天,官方提供技术支持;另外一种是社区版本:免费,但不提供技术支持,在学习阶段社区版本基本可以满足需求。

官网下载地址:MySQL :: Download MySQL Community Server

MySQL的数据模型是关系型数据库(RDBMS): 建立在关系模型基础上,由多张相互连接的二维表组成的数据库。之后会提到的redis的话就是非关系型数据库。

在使用MySQL管理数据库的时候,客户端工具如果单纯的使用cmd来操作的话就太繁琐了,通常我们会用到一些图形化工具,比较常见的有:MySQL Workbench、Navicat、DataGrip等。MySQL Workbench通常会在学习过程当中使用到,平时比较常用的更多是Navicat、DataGrip,而DataGrip是JetBrains旗下的一款数据库管理工具,是管理和开发MySQL、Oracle、PostgreSQL的理想解决方案。官网: https://www.jetbrains.com/zh-cn/datagrip/,这是其实也就是IDEA同源的产品,目前的话DataGrip已经内置在IDEA编辑器当中了,我们可以不用再去下载安装,直接在IDEA中就可以使用。

连接数据库方法:

打开项目->在右侧点击Database->点击"+"->选择Data Source->选择MySQL->输入数据库的ip信息,以及数据库名字密码->点击下方Test Connection->连接成功的话即可。

注意:第一次连接需要点击下载数据库连接驱动。

三、SQL

SQL:一门操作关系型数据库的编程语言,定义操作所有关系型数据库的统一标准。

通用语法:

  • SQL语句可以单行或多行书写,以分号结尾。
  • SQL语句可以使用空格/缩进来增强语句的可读性。
  • MySQL数据库的SQL语句不区分大小写。
  • 注释:
    • 1.单行注释:-- 注释内容 或 # 注释内容(MySQL特有)
    • 2.多行注释:

SQL语句通常被分为四大类:

分类

全称

说明

DDL

Data Definition Language

数据定义语言,用来定义数据库对象(数据库,表,字段)

DML

Data Manipulation Language

数据操作语言,用来对数据库表中的数据进行增删改

DQL

Data Query Language

数据查询语言,用来查询数据库中表的记录

DCL

Data Control Language

数据控制语言,用来创建数据库用户、控制数据库的访问权限

create table  表名(

  字段1  字段类型  [ 约束 ]  [ comment  字段1注释 ] ,

  ......

  字段n  字段类型  [ 约束 ]  [ comment  字段n注释 ]

) [ comment  表注释 ] ;

约束:作用于表中字段上的规则,用于限制存储在表中的数据。目的是为了保证数据库中数据的正确性、有效性和完整性。

约束

描述

关键字

非空约束

限制该字段值不能为null

not  null

唯一约束

保证字段的所有数据都是唯一、不重复的

unique

主键约束

主键是一行数据的唯一标识,要求非空且唯一

primary  key

默认约束

保存数据时,如果未指定该字段值,则采用默认值

default

外键约束

让两张表的数据建立连接,保证数据的一致性和完整性

foreign  key

MySQL中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型。

数值类型:

分类类型大小(byte)有符号(SIGNED)范围无符号(UNSIGNED)范围描述备注
数值类型tinyint1(-128,127)(0,255)小整数值 
smallint2(-32768,32767)(0,65535)大整数值 
mediumint3(-8388608,8388607)(0,16777215)大整数值 
int4(-2147483648,2147483647)(0,4294967295)大整数值 
bigint8(-2^63,2^63-1)(0,2^64-1)极大整数值 
float4(-3.402823466 E+38,3.402823466351 E+38)0 和 (1.175494351 E-38,3.402823466 E+38)单精度浮点数值float(5,2):5表示整个数字长度,2 表示小数位个数
double8(-1.7976931348623157 E+308,1.7976931348623157 E+308)0 和 (2.2250738585072014 E-308,1.7976931348623157 E+308)双精度浮点数值double(5,2):5表示整个数字长度,2 表示小数位个数
decimal   小数值(精度更高)decimal(5,2):5表示整个数字长度,2 表示小数位个数

其中,tinyint和int算是比较常用的类型,比如说年龄或者一个数字代表一个含义,简单的一个数字存储在数据库中我们是不希望说占用太多的内存的,那tinyint使用起来就更加合适。

字符串类型:

分类类型大小描述
字符串类型char0-255 bytes定长字符串
varchar0-65535 bytes变长字符串
tinyblob0-255 bytes不超过255个字符的二进制数据
tinytext0-255 bytes短文本字符串
blob0-65 535 bytes二进制形式的长文本数据
text0-65 535 bytes长文本数据
mediumblob0-16 777 215 bytes二进制形式的中等长度文本数据
mediumtext0-16 777 215 bytes中等长度文本数据
longblob0-4 294 967 295 bytes二进制形式的极大文本数据
longtext0-4 294 967 295 bytes极大文本数据

其中char和varchar算是应用最多的字符串类型,char和varchar的区别主要就是会不会自动根据字符串长度来规定字节。char是设定一个值固定字节大小,如果字符串太长,就报错,如果字符串没有填充满的话会添加空字符来填满,varchar的话就是设定一个上限值,如果字符串太长,就报错,如果字符串太短,就会根据字符串的长度重新适配相应的字节大小。

char(10): 最多只能存10个字符,不足10个字符,占用10个字符空间AB性能高浪费空间
varchar(10): 最多只能存10个字符,不足10个字符, 按照实际长度存储ABC性能低节省空间

日期时间类型:

分类类型大小(byte)范围格式描述
日期类型date31000-01-01 至 9999-12-31YYYY-MM-DD日期值
time3-838:59:59 至 838:59:59HH:MM:SS时间值或持续时间
year11901 至 2155YYYY年份值
datetime81000-01-01 00:00:00 至 9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时间值
timestamp41970-01-01 00:00:01 至 2038-01-19 03:14:07YYYY-MM-DD HH:MM:SS混合日期和时间值,时间戳

常用的就是date以及datetime,date是指代表的日期,我们可以用在入职时间、生产日期等方面,datetime是指精确到每分每秒,像我们常用的log记录,便通常都是记录确切的时间。

目前来说对SQL语句主要是能看懂能理解便可,因为有图形化工具的存在,我们可以更简便地创建表格添加数据。以下是一些常见的SQL语句:

-- 查询所有数据库show databases;-- 创建数据库create database da02;-- 使用数据库use `1`;-- 删除表格drop table IF exists tb_user;-- 创建表格create table tb_user(    id int primary key auto_increment comment 'ID,唯一标识',    username varchar(20) not null unique comment '用户名',    name varchar(10) not null comment '姓名',    age int comment '年龄',    gender char(1) default '男' comment '性别') comment '用户表';-- 查看数据库建表语句show create table tb_emp-- 插入数据insert into tb_emp (username, name, gender, create_time, update_time)values ('wuji','张无忌',1,now(),now());# insert into tb_emp(id, username, password, name, gender, image, job, entrydate, create_time, update_time)#             VALUES(null,'zhiruo','123','芷若',2,'1.jpg',1,'2020-10-10',now(),now());insert into tb_emp VALUES(null,'zhiruo2','123','芷若',2,'1.jpg',1,'2020-10-10',now(),now());-- 批量插入insert into tb_emp (username, name, gender, create_time, update_time)values ('wuji','张无忌',1,now(),now()),('xiexun','谢逊',1,now(),now());-- 更新数据update tb_emp set name = '张三' , update_time = now() where id = 1;-- 全部更新update tb_empset entrydate = '2010-01-01', update_time = now();-- 删除数据delete from tb_emp where id = 1;-- 删除所有数据delete from tb_emp;

需要注意的是,如果数据库名字是数字的话,使用该数据库是用use `数字` ,而不是use '数字'

另外,在更改和删除表结构的时候,如果没有选择where值也就是说没有选择更改和删除的具体行,他会更改和删除表中所有对应的数据。当然,在做这种操作的时候,IDEA编辑器还会提示你是否要继续,需要无误的话点击Execute(执行)即可。

小结

这节内容主要讲的是关于数据库的作用以及实际操作的指导,同时也了解了MySQL中的数据类型和SQL中的DDL和DML通用语法。其中数据库的使用当中目前还是以图像化工具为主,DDL、DML语法语句还是了解基本就可以了。

转载请注明:文章转载自 http://www.konglu.com/
本文地址:http://www.konglu.com/it/1097370.html
免责声明:

我们致力于保护作者版权,注重分享,被刊用文章【Java Web开发】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2023 成都空麓科技有限公司

ICP备案号:蜀ICP备2023000828号-2