day00综述

需要学习SpringBoot,但是JavaWeb是基础,来补一下
JavaWeb就是将数据库中的数据用好看的样式在网页上呈现出来
28e6aa4b2eb145cbb24a2e5796d3b8a7

day01MySQL基础

191352b6b11a41c9b432163f3657f857
8a351d3178a0451599ffe7b2f7e99a17
接下来就是MySQL的安装什么的

1
2
3
mysqld --initialize-insecure
mysqld -install
net start mysql

c5cba213b6394965ac8451b4c4255cad
至此我的电脑上已经安装了MySQL服务,我的电脑也就成了MySQL服务器,那么既然它可以提供服务,我得访问它呀,那就得连接上,其实也就是自己连接自己,所以接下来要修改账户默认密码
在黑框里敲入mysqladmin -u root password 1234,这里的1234就是指默认管理员(即root账户)的密码,可以自行修改成你喜欢的。

1
mysqladmin -u root password 1234

进入到mysql:mysql -uroot -p

接下来就是连接数据库, 可以连自己的,也可以连自己同桌的,把命令中的root和密码还有IP换为同桌的可以了:

1
mysql -uroot -p1234 -h127.0.0.1 -P3306

aac4b0a47e034d05b7b6d03acf028ee6
关系型数据库,说白了就是二维表相互连接组成的数据库

711b1232f58846b2b66e52e609bd3e51
88608b1f0840424884dbcebbb51dcbff
SQL通用语法:

  • 语句用分号结尾
  • sql语句不区分大小写
  • 注释,单行用-- 注释内容两个短杠后面一定要加一个空格,或者#注释内容,多行注释与Java一致
    例:
    ab8192f74f8b4bda97631189f82d81aa
    a17cc0b8343b483c9d97ff334111896b

dc72f0b558434be58ece86d60ea6fe25
接下来是SQL语句的分类
589214e7fbf94af8ad654c272fa8c8fa
DDL:操作数据库和操作,比如新建库啊,新建表啊这一类
DML和DQL:是对表中的数据进行操作。增删改查
DCL:对数据库进行权限控制

e39a9ad479ee438e9fc78a3c7d375cbb

创建数据库:
4e85e2d40ca74c2e89ffccd89c8819d5
377aacaa4f8748e58de0956d955b01a8
eafff2e6734542e9a909e3fb468e69b2
f7ce51a065774855a4de2600f8db45e3
2dba62cda4234a81a1855b1f8c8481a3
694af795fce642afb5001a828657bbd3
3dbdbd0a1e534b3aa44ea773c5557e1d
其中对于double类型的数据,在定义的时候要指定它的总长度与小数点后几位这两个参数。
例如:我们要定义一个分数的字段,要求它的数据表示0-100,并且保留小数点后两位,100是三位,小数点是两位,所以总长度就是5位,那么我们就可以这样写:

1
score double(5,2);

c2d09293627145dd931da7602b99d033
上图,对于字符串类型有char是定长,varchar是变长,区别就是如果我们要存储“张三”,用name char(10),系统就会安排10个字符空间,而张三只需要两个字符空间,所以剩下八个就用空格补齐了,比较浪费空间。
所以一般我们用户名用varchar,性别用char

来一个小案例:

fde48ad90f0d4e10ab59d4aa6238cc82
9cdc369cac5a4506a69565b93ca1a376
sql语句中的modify是修改为什么什么
change是修改…为…再修改数据类型为…

day02-Maven&MyBatis

maven简述
657b1c3fe57748b4b69274cba79cfe2b
f3e256c7844c4df490893796644dea94
每个IDE都有自己的项目结构,所以eclipse中的项目无法导入到IDEA中时,因为结构不一致,但如果IDE都使用maven来创建项目,那项目结构都相同,长这样
b87f21de45ec42b0ae82943c891eba35
其中的pom.xml文件,就是maven特有的配置文件,可以这样理解,当看到pom.xml文件,我们就可以断定,这个项目是用maven构建的
用maven构建的项目结构详细解读:
ec4e54edaeba497fa5ad4728f0a6909d
以往我们的Java项目需要编译、测试、打包、发布…,这一系列的流程操作起来比较麻烦,而maven用来统一的命令来代替:
71539f288c694d68b64fbbfb38caf8f7
9a07ab0537824e6fa568e781c96799af
可以看到maven这个构建工具是相当方便啊
在pom.xml文件中输入我们要引入的依赖的坐标,就可以导入jar包,那整个流程是什么?
966cdbdec02142809402cefc0f9b092a
maven的安装配置:
3b3b9d37df66473b99260740e37f7355
IDEA配置maven:
c84d7c353dfb46d68314ab3f524fe7fb

mybatis是用来简化jdbc开发的
它是一个持久层框架,持久层就是把数据保存到数据库中的那一层代码,并且JavaEE的三层架构就是表现层(controller)、业务层(service)、持久层(dao)
a44e351b76e847f4b8d48662f64707a5
c3db7412249c4aaea32f14c0a7b3205d
数据库的增删改查在mybatis这里是用配置文件或者注解的方式完成的
在UserMapper.xml中写SQL语句(map的意思是映射)
操作什么表就用什么Mapper.xml,操作用户表就用UserMapper.xml,操作订单表就用OrderMapper.xml,
增删改查对应的便是xxxMapper.xml中的insert delete update select 标签
18834d6e154942088a9e69c3445d3bc6

41de30b6fc9a477f94c85cc77a6918e1

整个流程就是:pojo——mybatis-config.xml——InputStream——SqlSessionFactoryBuilder的build方法——SqlSessionFactory——SqlSessionFactory的openSession方法——SqlSession对象——调用selectList方法,参数为SQL语句的id——执行SQL语句

SqlSessionFactoryBuilder的build方法会返回一个SqlSessionFactory对象(看了一眼源码)
SqlSessionFactory的openSession方法会返回一个 SqlSession对象
[今天就到这](https://www.bilibili.com/video/BV1Qf4y1T7Hx?p=48&spm_id_from=pageDriver&vd_source=829c06bc26 8bb81296178a37d18537e1)
527a9b55e394433dbc689212b23c0702

d847fab42cc3486aa4054afcde780392
xml中的配置项目是有顺序的。
注解开发就是将sql语句写在注解当中,所以注解开发将更加方便,但是也不一定总是方便的
5bfddc1d71cc4fdcb86b0372010b3bff

day03-DOM

dom:将来浏览器加载html文档的时候,会把html中的各个组成部分封装为dom对象,同时在浏览器的内存当中会形成一颗dom数树,如下图:
7282844d9956499289885db1ad549968
使用js来操作html,融合了面向 对象思想

7f0c28c4a801440c87eb3feac8af1763

我们主要学两点:
2a9ea57ed8724585bb8f5edfcab5da52
1ca825be01814b948138459d39c2cf12
对象的使用可以查阅文档

day04正则表达式

正则表达式定义了字符串组成的规则。也就是判断指定的字符串是否符合指定的规则,如果符合返回true,如果不符合返回false。

正则表达式是和语言无关的。很多语言都支持正则表达式,Java语言也支持,只不过正则表达式在不同的语言中的使用方式不同,js 中需要使用正则对象来使用正则表达式。
2a817906034744658cd6c1426c0a1ec3
可以用正则表达式判断用户名起的是否符合规则

day05Web核心

367b5804ec9745e19a026076a1e324a4

adfa195a70724f0c8b3a062131f1f55f
可Java中使用会话技术(cooki、session)来解决多次请求间不能共享数据的问题

day06Servlet

Web服务器是一个软件,对http协议进行了封装,tomcat就是一个web服务器。
Servlet
servlet就是一个接口,这个接口最重要的一个方法就是 public void service(ServletRequest req, ServletResponse res)
servlet的执行很特殊,是有web服务器tomcat来帮我们创建servlet对象,并且调用servlet方法的。
5714a2968d6945acac28eb991b7f701f
既然servlet由web服务器管理,那servlet在加载和实例化的时候当servlet被第一次访问的时候,web服务器创建servlet对象,如果是在被访问的时候才创建,那势必会等待一段时间,影响用户体验,所以一般是在web服务器启动的时候就创建servlet对象,那如何来配置呢?

1
2
3
4
@WebServlet(urlPatterns = "/demo1",loadOnStartup = 1)
loadOnstartup的取值有两类情况
(1)负整数:第一次访问时创建Servlet对象
(2)0或正整数:服务器启动时创建Servlet对象,数字越小优先级越高

然后init方法只调用一次,在创建servlet对象时调用。只要servlet被访问,servlet方法会被调用,所以会被多次调用,。
当服务中指的时候会调用destroy方法
在使用servlet时,每次都要实现五个方法,其中四个还不太常用,太费事了,为了方便开发,我们可以用继承HttpServlet的方式,重写doGet和doPost方法。
在浏览器输入url的请求是get请求的方式,要是使用post请求方式,应该用提交表单的方式(提交方式选择post)
149ac5b306e44488868595a64e076e8e
ac6daa43f0f24519838fb90caa7578e7

自己配//*会把tomcat中的defaultservlet配置给覆盖掉,若是覆盖掉,则无法访问静态资源,所以我们一般不覆盖。

AJAX(异步的JavaScript和xml)
这是一种为了前后端分离而产生的技术,现在属于前端技术了
817fe7dec0464bed8309721bc2ef9335
在搜索框中输入“奥运”,下面就会联想出各种关键词,这些关键词就是在输入奥运之后,立马访问数据库,把奥运相关的关键词也返回在页面上,这不就是吧服务器端的数据展示在页面上了嘛,我并没有刷新网页就更新了部分页面的内容。
用户名是否可用校验就是,在我注册用户名时,光标离开输入框的时候就访问数据库并查询看是否有重合的,然后就立马在前端的页面给到我提示信息(xxx用户名已存在或不符合要求)。

之前我们之用HTML和普通的JavaScript做不到从服务器获取数据,比如说服务器查询了一个数据列表,我怎么通过JavaScript的方式给到前端的页面,以前是做不了这个事的,以前是通过jsp来做的,现在我们有两ajax就不用jsp了,