黑馬程序員2023新版JavaWeb開(kāi)發(fā)教程,實(shí)現(xiàn)javaweb企業(yè)開(kāi)發(fā)全流程(

Day1
一、web前端開(kāi)發(fā)
1、HTML(超文本:包含圖書(shū),視頻,文字)
2、CSS:控制頁(yè)面的樣式

注:包含具體內(nèi)容

可在官方文檔查看

相對(duì)路徑,絕對(duì)路徑:

常見(jiàn)標(biāo)簽:

顏色樣式表示:

<span>:表示沒(méi)有含義的一個(gè)盒子
<div>:可調(diào)節(jié)參數(shù)的盒子

<div>的參數(shù):

css中各類選擇器設(shè)定樣式:

優(yōu)先級(jí)為元素到id選擇器到類選擇器:

超鏈接:a標(biāo)簽


音視頻及段落對(duì)齊的css及標(biāo)簽:

注:音視頻要有control控制符,是文件可以播放調(diào)節(jié)
表格標(biāo)簽:<table>,每一行<tr>,標(biāo)題<th>,正文<td>;
單元格參數(shù):cellspacing=0表示需要表格框且為細(xì)線


注:含r的標(biāo)簽<hr>分割線<br>空行<tr>表格中一行
表單<form>:
1、提交方式get

2、提交方式post:


表單標(biāo)簽:

<label>:被其包裹的的文字及內(nèi)容單擊即可選上
<input>:為輸入框,含有幾種type=text為手動(dòng)輸入明文,=password為手動(dòng)輸入暗文,=radio為二選一框,=checkbox為復(fù)選框,=number為只能輸入數(shù)字框,=reset表示重置,=submit為提交
<select>下拉列表框
<textarea>長(zhǎng)文本框區(qū)域,可定義行數(shù)及列數(shù)


Day2
1、JavaScript 引入方式

輸出語(yǔ)句:
①內(nèi)部方法alert()表示網(wǎng)頁(yè)出彈窗。
②write()寫(xiě)出到網(wǎng)頁(yè)
③log()朝控制臺(tái)輸出

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


五大數(shù)據(jù)類型:
獲取方式typeof

運(yùn)輸符:

數(shù)組Array:
①長(zhǎng)度可變,類型可變,可多種類型存放一個(gè)數(shù)組
②內(nèi)部方法:forEach遍歷有值的元素,push批量添加元素在末尾并還回長(zhǎng)度,splice(起始索引,刪除個(gè)數(shù))

字符串:
截取字符串substring(開(kāi)始索引,結(jié)束索引),范圍含頭不含尾

自定義對(duì)象:

創(chuàng)建對(duì)象其內(nèi)部參數(shù)及方法以及調(diào)用:

JSON對(duì)象:
網(wǎng)絡(luò)傳輸數(shù)據(jù)使用,將對(duì)象轉(zhuǎn)換成‘{ }’

BOM對(duì)象:
①窗口對(duì)象window

②地址欄對(duì)象Location

文檔對(duì)象DOM:


改變?cè)夭襟E:
①圖片類元素獲取document.getElementById()
-->img.src=" "
②文字類元素獲取
document.getElementByTagName()
-->文字在div中:div.innerHTML=
-->給文字設(shè)置顏色:div.innerHTML=“<font color='red'>文字內(nèi)容</font>”
事件監(jiān)聽(tīng)及綁定:

兩種綁定形式代碼

常見(jiàn)事件

事件和方法綁定,定義方法時(shí)要function關(guān)鍵字+方法名+{方法體}
vue框架
主要是對(duì)DOM操作

1、操作步驟:
①在<head>中引入:<script src=“js/vue.js”></script>,“js/vue.js”為外部引入的vue文件
②在<body>外定義vue對(duì)象: new Vue ({
el:“#app”,//表示接管的區(qū)域
data:{
message:“Hello“
}
})
③在<body>中寫(xiě)主代碼:
<div id="app">
<input type="text" v-model="message">
{{message}}
</div>

Vue的特性:雙向數(shù)據(jù)綁定,v-model變從而new Vue中也變


2、常見(jiàn)Vue指令

①利用指令v-bind和v-model以及超鏈接標(biāo)簽<a href=" ">文字</a>可對(duì)超鏈接動(dòng)態(tài)修改


②v-on事件綁定指令
可以簡(jiǎn)寫(xiě)成 @


③條件指令


④遍歷


注:插值表達(dá)式{{ }},直接顯示大括號(hào)內(nèi)的元素
Day03
1、Ajax
Axios是Ajax的封裝形式,異步請(qǐng)求形式



YApi:前后端分離的標(biāo)準(zhǔn)

Day04
1、Maven安裝

2、HTTP
請(qǐng)求數(shù)據(jù)格式:get和post區(qū)別


響應(yīng)格式:
常見(jiàn)響應(yīng)狀態(tài)碼及錯(cuò)誤碼



Tomcat端口占用和打開(kāi)不了:
重新配置JAVA_HOME;
conf/server.xml改配置。

Tomcat部署文件項(xiàng)目:

postman模擬前端與后端java代碼的springbootweb模塊聯(lián)動(dòng),獲取網(wǎng)址路徑的參數(shù)幾種方法:
①源代碼


②各類請(qǐng)求參數(shù)需標(biāo)注的注解


==》@ResponsBody注解
定義統(tǒng)一響應(yīng)結(jié)果:均返回json對(duì)象的一組數(shù)據(jù),在后端代碼中引入javabeen為result,在每個(gè)return調(diào)用靜態(tài)方法



小案例:獲取數(shù)據(jù),返回統(tǒng)一響應(yīng)格式的結(jié)果,最后在web頁(yè)面渲染展示

高內(nèi)聚低耦合
利用IOC和DI容器:不要new對(duì)象,加注解;需要容器管理的也就是被調(diào)用的@Component(控制反轉(zhuǎn))注解,要去掉用別人的加@Autowired(依賴注入)

@Component


@Autowired
同時(shí)有多個(gè)類型的bean在容器,@Autowired不知道調(diào)用哪一個(gè)就會(huì)報(bào)錯(cuò),解決方案:


MySQL增刪查改指令代碼:
沒(méi)有加where條件則改變這一列數(shù)據(jù)

查詢語(yǔ)法;


①基本查詢

②條件查詢

name like '--'

name like'張%' :表示首字為張后面容易字符

③分組查詢
count,min,max,avg,sum


根據(jù)性別分組
返回內(nèi)容格式:gender,count(聚合函數(shù))

分組后才會(huì)得到聚合函數(shù),且不能對(duì)count(*)操作條件篩選,只能用having對(duì)分組后條件過(guò)濾.
where與having同是過(guò)濾函數(shù),使用時(shí)機(jī)和判斷對(duì)象要區(qū)分.


升序asc和降序desc排序,以及多個(gè)條件排序

根據(jù)頁(yè)碼查詢每頁(yè)展示的數(shù)據(jù):limit (頁(yè)碼-1)*每頁(yè)展示的數(shù)據(jù),每頁(yè)展示的數(shù)據(jù)


多條件結(jié)合查詢,多層代碼結(jié)合書(shū)寫(xiě):
ctrl+alt+l格式化代碼,分層書(shū)寫(xiě)

篩選性別(二選一用if,多選用case)并轉(zhuǎn)意:

case語(yǔ)句書(shū)寫(xiě)

create table tab{
}comment'表格'
==>comment后面表示給表格重命名
多對(duì)多關(guān)系,引入外鍵約束(foreign key):兩個(gè)獨(dú)立的表,中間沒(méi)有約束,利用創(chuàng)建第三表格與另外兩建立聯(lián)系

中間表要綁定其他表的代碼:

Day08
1、多表查詢
要用where篩選兩表之間的無(wú)效項(xiàng)(內(nèi)連接查詢),避免笛卡爾積

①內(nèi)連接查詢


②顯示內(nèi)連接:可消除不需要的數(shù)據(jù)

給表起別名簡(jiǎn)寫(xiě)代碼

③左右外連接

左連接包含左表需要的所有數(shù)據(jù),包含左邊沒(méi)與外表連接的部分

要是有多個(gè)條件,在后面再添加where
④子查詢

- 標(biāo)量子查詢
需求1:

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


- 列子查詢



多個(gè)子查詢結(jié)合=表子查詢



求一組數(shù)據(jù)最大值,分組用group by

- 事務(wù)

目的:多個(gè)語(yǔ)句語(yǔ)句運(yùn)行若有一個(gè)執(zhí)行失敗,還可還原出原始數(shù)據(jù),如下語(yǔ)句

事務(wù)基本操作:

執(zhí)行完代碼后以下語(yǔ)句二選一
commit作用:若語(yǔ)句執(zhí)行成功便可直接運(yùn)行
rollback作用:若語(yǔ)句執(zhí)行有錯(cuò)誤未成功完成則將數(shù)據(jù)恢復(fù)到之前
MySQL事務(wù)四大特性(ACAD)--面試問(wèn)題


MySQL索引 :
-- 為優(yōu)化查詢數(shù)據(jù)的效率而創(chuàng)建
-- 語(yǔ)發(fā)為create index idx_sku_sn on tb_sku(sn);



底層原理類比:

結(jié)構(gòu)1:B+Tree

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

dao數(shù)據(jù)層也就是持久層,故mybatis是數(shù)據(jù)層的工具
使用查詢數(shù)據(jù)的步驟

在.properties文件中配置數(shù)據(jù)庫(kù)四要素:

配置SQL語(yǔ)句提示


JDBC
什么是jdbc?mybatis與jdbc的關(guān)系

jdbc代碼查詢數(shù)據(jù)庫(kù)信息:



mybatis就是優(yōu)化的jdbc,主要只用改動(dòng)兩個(gè)部分,jdbc是整個(gè)改動(dòng)
數(shù)據(jù)庫(kù)連接池:是一個(gè)容器,分配管理數(shù)據(jù)庫(kù)連接,提升響應(yīng)速度,節(jié)省數(shù)據(jù)連接資源

切換使用druid連接池

或

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

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


使用mybatis準(zhǔn)備工作:
以及增刪改查操作

1、刪除操作:
占位符,用于更改函數(shù),提升復(fù)用性,使增刪查改的函數(shù)只用定義一次,還可防止sql注入
如:delete from emp where id =#{id}

注意兩個(gè)占位符的區(qū)別


日志輸出指定內(nèi)容到控制臺(tái):

簡(jiǎn)寫(xiě)代碼:mybatislog.stdout
2、新增操作:
占位符里面用駝峰命名

占位符里面用駝峰命名

mybatis.camel
主鍵返回:


更改操作:

查詢操作:

部分值返回null的原因:

解決:①起別名

②手動(dòng)映射封裝,用@Results和@Result注解

③打開(kāi)開(kāi)關(guān)


快捷代碼camel.
條件查詢:
條件太多用集合裝

改進(jìn):因?yàn)??不能在引?hào)中出現(xiàn),故只能用模糊字符號(hào) % ${} %,可用concat字符串拼接

XML映射文件

第一步:在resources創(chuàng)建包,目錄和接口文件路徑一致,格式要注意不是點(diǎn)是斜線

動(dòng)態(tài)SQL

if,
where,可自動(dòng)判斷and是否要,還可判斷所有條件是否要,不要?jiǎng)t無(wú)條件查詢,全表輸出

if,
set,自動(dòng)判斷逗號(hào)是否要

總結(jié):

批量刪除動(dòng)態(tài)SQL語(yǔ)句:
foreach 標(biāo)簽,內(nèi)部幾個(gè)屬性各代表的如下


sql,定義可重復(fù)用的SQL語(yǔ)句片段
include,標(biāo)注refid指定包含sql的片段
