#Java學習之路——基礎階段二(第十篇)
我的學習階段是跟著CZBK黑馬的雙源課程,學習目標以及部落格是為了審查自己的學習情況,畢竟看一遍,敲一遍,和自己歸納總結一遍有著很大的區別,在此期間我會參雜Java瘋狂講義(第四版)裡面的內容。
前言:此隨筆主要是Java基礎中的基礎,相信大家對這方面肯定有著自己的理解和認識,具體詳解可以參照萬能的baidu,有的我就一筆帶過,希望在我的學習之路上能夠有大牛進行指導,也有更多的小夥伴共勉。
1.Junit單元測試
我們在程式設計的時候會寫一些功能,但是總不可能就是說沒寫一個功能來進行測試就要對整個專案重新啟動,這樣第一效率不高,第二頁不方便編譯,在這裡我們就可以進行單元測試Junit。
測試分為黑盒測試和白盒測試。
兩者的區別就是黑盒測試是看不到中間測試的過程,主要注重於結果是否正確,而白盒測試,便是需要對程式碼進行編譯來看是否編譯內容出現錯誤,而這裡的白盒測試就是我們Junit的單元測試,但是對於Junit單元測試的結果來說,並不一定是說結果是肯定正確的,這裡的單元測試只是用來測試程式碼是否能夠實現這個功能,是否編譯區域性出錯,就好比要進行一個加法運算的功能,但是裡面寫的是減法語法,編譯不會報錯,說明是可以運算的,程式碼的操作沒有問題,內容出錯可以對程式碼進行修改從而達到想要的目的。如果說有期望 值,那麼可以使用Assert.assertEquals進行傳參對比,看是否能達到使用的功能。這裡使用Junit單元測試,只需要在需要測試的程式碼沒塊前加@Junit註釋,然後進行測試。而這裡還要學到兩個註釋一個是@before 一個是@after是指在單元測試前後要執行的程式碼。而對於Junit需要匯入依賴環境來使用Junit測試。
2.MySql
這裡是後臺的重中之重了,後臺程式設計師必須要熟練掌握SQL語句對資料庫的資料進行使用,從而在前端能夠很好的運用資料庫的內容進行展示。
什麼是資料庫呢?就是用來儲存和管理資料的倉庫。Database簡稱DB。
資料庫的安裝和解除安裝就不做贅述了,baidu有很多操作方式。這裡需要了解資料庫的啟動就是啟動和關閉資料庫,還有進入資料庫。
資料庫的啟動和關閉在cmd中services.msc服務直接啟動或者是通過輸入指令
啟動資料庫:net start mysql;
關閉資料庫:net stop mysql;
資料庫的登入:-u使用者名稱 -p使用者登入密碼
資料庫的退出:exit / quit
而SQL語句分為四種分別是DDL、DML、DQL、DCL
DDL用來操作資料庫的,DML用來對錶進行增和刪,DQL用來對資料庫表中內容進行查詢,DCL是對資料庫訪問許可權的修改。我們主要學的就是對資料庫變著花樣的進行查詢。
DDL:操作資料庫和表
資料庫的建立:
CREAT database 資料庫名稱;
CREAT database if not exists 資料庫名稱;
CREAT databse 資料庫名稱 character set 字符集名;
資料庫的查詢:
SHOW database ;
SHOW CREAT database 資料庫名稱; 查詢建立資料庫的語句
資料庫的修改:
alter database 資料庫名稱 character set 字符集;
資料庫的刪除:
drop database 資料庫名稱;
drop database if exists 資料庫名稱;
使用資料庫:
SELECT database();
use 資料庫名稱;
表的建立:
Create table 表名(
列名1 資料型別1;
列名2 資料型別2;
列名3 資料型別3;
);
資料型別: int ,double, date, datetime, timestamp, varchar。
表的複製:
create table 表名 liike 被複制的表名;
表的查詢:
show tables;
desc 表名;查詢表的結構
表的修改:
alter table 表名 rename to 新的表名;
alter table 表名 character set 字符集名稱;
alter table 表名 add列名 資料型別;
alter table 表名 change 列名 新類別 新型別資料;
alter table 表名 modify 列名 新資料型別;修改列名稱和列型別
alter table 表名 drop 列名;刪除列
表的刪除:
drop table 表名;
drop table if exists 表名;
DML:增刪改表中的資料
新增資料。
insert into 表名(列名1,列名2,。。。列名n) values (值1,值2,值n);
刪除資料:
delete from 表名 [where 條件];
如果不加條件,則刪除表中的所有資料。
TRUNCATE TABLE 表名;先刪除表,然後再建立一張一樣的表;
修改資料:
update 表名 set 列名1 = 值1 , 列名2=值2 ,。。[where 條件]
DQL:查詢表中的記錄
select * from 表名;
select 欄位列表 from 表明列表 where 條件列表 group by 分組欄位 having 分組之後的條件 order by 順序 limit 分頁限定
基礎查詢
1.多個欄位的查詢 select 欄位名1,欄位名2.。。from 表名;
2.去除重複distinct
3.ifnull(表示式1,表示式2):null參與的運算,計算結果都為null,表示式1是哦按段那個欄位是否為null,表示式2是將null 值替換的值
4.as起別名
條件查詢
1.where子句後跟條件;
2.> < <= >= = <> BETWEEN...AND IN(集合) LIKE模糊查詢 _:單個任意字元;%:多個任意字元; IS NULL ;and 或&&;or或||;not 或 !
判斷是否為null 值不能用 where 列名 = NULL ;這樣是錯誤的 只能用IS NULL;
1.排序查詢
order by子句 排序欄位1 排序方式1,排序欄位2 排序方式2;
如果有多個排序條件,那麼只有之前的排序條件值相同時,再會執行之後的排序條件;
2.聚合函式
1.count 計算個數(一般會選擇主鍵)
2.max 計算最大值
3.min 計算最小值
4.sum 計算和
5.avg 計算平均值
注意:聚合函式的值不包括null值,可以選擇不包含null值的列或者使用isnull 來進行判斷使用
3.分組排序
group by 分組欄位;
分組之後查詢到欄位:分組欄位,聚合函式
where 和 having的區別
where是先進行限定不滿足條件不參與分組。having是在分組之後進行限定,後面可以跟聚合函式。
4.分頁查詢
limit 開始的索引,每頁顯示的條數。
約束
1.主鍵約束 primary key 新增自增長auto_increment 刪除自增長modify 刪除主鍵不能用modify 需要用drop primary
2.外來鍵約束foreign key 刪除外來鍵約束 drop foreign key 外來鍵名稱 新增外來鍵 add constraint 外來鍵名稱 foreign key reference 主表名稱
3.非空約束not null 刪除非空約束用modify
4.唯一約束unique 刪除唯一約束drop index列名
級聯操作
級聯更新 on update cascade
級聯刪除 on delete cascade
資料庫的設計
分類:一對一 一對多 多對多 多對一
資料庫設計的正規化
為了減少資料庫的冗餘從第一正規化到第五正規化 主鍵拆分 一般到第三正規化
資料庫的備份與還原
備份:MySQLdump -u使用者名稱 -p 密碼 資料庫名稱> 儲存路勁
還原:登入資料庫->建立資料庫->使用資料庫->執行檔案。source 檔案路徑