黑马程序员2023新版JavaWeb开发教程,实现javaweb企业开发全流程(

Day1
一、web前端开发
1、HTML(超文本:包含图书,视频,文字)
2、CSS:控制页面的样式

注:包含具体内容

可在官方文档查看

相对路径,绝对路径:

常见标签:

颜色样式表示:

<span>:表示没有含义的一个盒子
<div>:可调节参数的盒子

<div>的参数:

css中各类选择器设定样式:

优先级为元素到id选择器到类选择器:

超链接:a标签


音视频及段落对齐的css及标签:

注:音视频要有control控制符,是文件可以播放调节
表格标签:<table>,每一行<tr>,标题<th>,正文<td>;
单元格参数:cellspacing=0表示需要表格框且为细线


注:含r的标签<hr>分割线<br>空行<tr>表格中一行
表单<form>:
1、提交方式get

2、提交方式post:


表单标签:

<label>:被其包裹的的文字及内容单击即可选上
<input>:为输入框,含有几种type=text为手动输入明文,=password为手动输入暗文,=radio为二选一框,=checkbox为复选框,=number为只能输入数字框,=reset表示重置,=submit为提交
<select>下拉列表框
<textarea>长文本框区域,可定义行数及列数


Day2
1、JavaScript 引入方式

输出语句:
①内部方法alert()表示网页出弹窗。
②write()写出到网页
③log()朝控制台输出

申明变量:
var、let都可表示任意类型变量,其中var是全局、let是局部
const是常量,不可改变


五大数据类型:
获取方式typeof

运输符:

数组Array:
①长度可变,类型可变,可多种类型存放一个数组
②内部方法:forEach遍历有值的元素,push批量添加元素在末尾并还回长度,splice(起始索引,删除个数)

字符串:
截取字符串substring(开始索引,结束索引),范围含头不含尾

自定义对象:

创建对象其内部参数及方法以及调用:

JSON对象:
网络传输数据使用,将对象转换成‘{ }’

BOM对象:
①窗口对象window

②地址栏对象Location

文档对象DOM:


改变元素步骤:
①图片类元素获取document.getElementById()
-->img.src=" "
②文字类元素获取
document.getElementByTagName()
-->文字在div中:div.innerHTML=
-->给文字设置颜色:div.innerHTML=“<font color='red'>文字内容</font>”
事件监听及绑定:

两种绑定形式代码

常见事件

事件和方法绑定,定义方法时要function关键字+方法名+{方法体}
vue框架
主要是对DOM操作

1、操作步骤:
①在<head>中引入:<script src=“js/vue.js”></script>,“js/vue.js”为外部引入的vue文件
②在<body>外定义vue对象: new Vue ({
el:“#app”,//表示接管的区域
data:{
message:“Hello“
}
})
③在<body>中写主代码:
<div id="app">
<input type="text" v-model="message">
{{message}}
</div>

Vue的特性:双向数据绑定,v-model变从而new Vue中也变


2、常见Vue指令

①利用指令v-bind和v-model以及超链接标签<a href=" ">文字</a>可对超链接动态修改


②v-on事件绑定指令
可以简写成 @


③条件指令


④遍历


注:插值表达式{{ }},直接显示大括号内的元素
Day03
1、Ajax
Axios是Ajax的封装形式,异步请求形式



YApi:前后端分离的标准

Day04
1、Maven安装

2、HTTP
请求数据格式:get和post区别


响应格式:
常见响应状态码及错误码



Tomcat端口占用和打开不了:
重新配置JAVA_HOME;
conf/server.xml改配置。

Tomcat部署文件项目:

postman模拟前端与后端java代码的springbootweb模块联动,获取网址路径的参数几种方法:
①源代码


②各类请求参数需标注的注解


==》@ResponsBody注解
定义统一响应结果:均返回json对象的一组数据,在后端代码中引入javabeen为result,在每个return调用静态方法



小案例:获取数据,返回统一响应格式的结果,最后在web页面渲染展示

高内聚低耦合
利用IOC和DI容器:不要new对象,加注解;需要容器管理的也就是被调用的@Component(控制反转)注解,要去掉用别人的加@Autowired(依赖注入)

@Component


@Autowired
同时有多个类型的bean在容器,@Autowired不知道调用哪一个就会报错,解决方案:


MySQL增删查改指令代码:
没有加where条件则改变这一列数据

查询语法;


①基本查询

②条件查询

name like '--'

name like'张%' :表示首字为张后面容易字符

③分组查询
count,min,max,avg,sum


根据性别分组
返回内容格式:gender,count(聚合函数)

分组后才会得到聚合函数,且不能对count(*)操作条件筛选,只能用having对分组后条件过滤.
where与having同是过滤函数,使用时机和判断对象要区分.


升序asc和降序desc排序,以及多个条件排序

根据页码查询每页展示的数据:limit (页码-1)*每页展示的数据,每页展示的数据


多条件结合查询,多层代码结合书写:
ctrl+alt+l格式化代码,分层书写

筛选性别(二选一用if,多选用case)并转意:

case语句书写

create table tab{
}comment'表格'
==>comment后面表示给表格重命名
多对多关系,引入外键约束(foreign key):两个独立的表,中间没有约束,利用创建第三表格与另外两建立联系

中间表要绑定其他表的代码:

Day08
1、多表查询
要用where筛选两表之间的无效项(内连接查询),避免笛卡尔积

①内连接查询


②显示内连接:可消除不需要的数据

给表起别名简写代码

③左右外连接

左连接包含左表需要的所有数据,包含左边没与外表连接的部分

要是有多个条件,在后面再添加where
④子查询

- 标量子查询
需求1:

注:select后面的元素表示要返回的值,本代码是返回id
需求2:


- 列子查询



多个子查询结合=表子查询



求一组数据最大值,分组用group by

- 事务

目的:多个语句语句运行若有一个执行失败,还可还原出原始数据,如下语句

事务基本操作:

执行完代码后以下语句二选一
commit作用:若语句执行成功便可直接运行
rollback作用:若语句执行有错误未成功完成则将数据恢复到之前
MySQL事务四大特性(ACAD)--面试问题


MySQL索引 :
-- 为优化查询数据的效率而创建
-- 语发为create index idx_sku_sn on tb_sku(sn);



底层原理类比:

结构1:B+Tree

为了更加高效使用MySQL索引引入
MyBatis

dao数据层也就是持久层,故mybatis是数据层的工具
使用查询数据的步骤

在.properties文件中配置数据库四要素:

配置SQL语句提示


JDBC
什么是jdbc?mybatis与jdbc的关系

jdbc代码查询数据库信息:



mybatis就是优化的jdbc,主要只用改动两个部分,jdbc是整个改动
数据库连接池:是一个容器,分配管理数据库连接,提升响应速度,节省数据连接资源

切换使用druid连接池

或

lombok工具:直接使用注解代替JavaBean中各类方法的生成

使用前配置即可,pom.xml中 添加依赖


使用mybatis准备工作:
以及增删改查操作

1、删除操作:
占位符,用于更改函数,提升复用性,使增删查改的函数只用定义一次,还可防止sql注入
如:delete from emp where id =#{id}

注意两个占位符的区别


日志输出指定内容到控制台:

简写代码:mybatislog.stdout
2、新增操作:
占位符里面用驼峰命名

占位符里面用驼峰命名

mybatis.camel
主键返回:


更改操作:

查询操作:

部分值返回null的原因:

解决:①起别名

②手动映射封装,用@Results和@Result注解

③打开开关


快捷代码camel.
条件查询:
条件太多用集合装

改进:因为?不能在引号中出现,故只能用模糊字符号 % ${} %,可用concat字符串拼接

XML映射文件

第一步:在resources创建包,目录和接口文件路径一致,格式要注意不是点是斜线

动态SQL

if,
where,可自动判断and是否要,还可判断所有条件是否要,不要则无条件查询,全表输出

if,
set,自动判断逗号是否要

总结:

批量删除动态SQL语句:
foreach 标签,内部几个属性各代表的如下


sql,定义可重复用的SQL语句片段
include,标注refid指定包含sql的片段
