最近學到了數據庫與java的jdbc方面,還有個DAO模式,寫一下本身的理解,後期有什麼不對的再改。java
1、數據庫三範式的理解數據庫
記得之前上課時,也上了一學期的「數據庫系統原理」,給咱們上課的老師算是渣渣學校裏挺強的了,看得出來,比通常的老師強很多。聽說是企業退下來,來咱們這教的,然而並無什麼用。上了一學期,留在腦殼裏的就三個單詞。。欠下的債老是要還的,那時候沒好好上,如今補吧,學了一個禮拜,感受有點理解了。學習
一開始,我理解的三範式是這樣的:接口
第一範式:表中的每一個列都不可分割。內存
第二範式:加入了主鍵。開發
第三範式:加入了外鍵。產品
感受很片面,在通過了幾天的問人與搜索後,感受明白了很多,如今是這樣的原理
第一範式:保證了數據庫內每一個表中的元素都不可分割,每一列只會有一個屬性,好比:產品名稱:XXX;不多是:產品名稱/價格:XXX/XX;軟件
第二範式:屬性之中只能有一個主鍵,被惟一標識。個人理解就是,好比一我的,你的姓名不能決定你是你,由於有重名;你的性別不能證實你是你,由於性別會重複。。。但身份證能夠證實你是你,由於它獨一無二。jdbc
第三範式:爲了消除數據冗餘,一個表的數據多了之後,會出現一列中不斷的重複幾個相同的字,這時候就要分表了。但會查詢起來麻煩。
感受第三範式比較難懂,但想到之前聽一我的說的,1000個字差很少是1KB,空格也算,一些大廠開發的網頁之中,代碼之間沒有空格與換行,就爲了提一點速。這也是JS爲何要加「;」的緣由。再想到jQuery,有開發版本與發佈版本,之間就差了幾百K的內存。第一次聽到這種說法時,感受頭皮發麻,但想一想竟有些認同,每一處的細節都作到了極致,完美的產品纔會產生吧?這就叫工匠精神吧。軟件工程師也是工程師啊!
2、DAO與JDBC模式的理解
JDBC就是一箇中間層,是java發佈一套標準,讓數據庫廠商去作一套代碼。
而後用java代碼去鏈接,操做,關閉數據庫的操做,一開始還要加載驅動。
不須要知道里面的內容是怎麼實現的,只要調用「一個」接口就好了。
DAO也是這樣,把重複的代碼抽出去,到最後的業務邏輯層,只要去調用就能夠了,不須要任何的實現方法寫在裏面。這樣代碼的可讀性會很高。
以上就是我這幾天的理解了,下面是個人一些吐槽與感悟
昨天,教員沒來,佈置了一個做業給咱們作。題目有三個,他只說過第二個,第一第三都沒說過,我作了一個下午,第一個也沒寫出來。但有思路。
而後去請教了班裏學的好的,他是個研究生,不得不佩服,學習能力是真的強。他思路很清晰,跟他討論一會,我感受這DAO模式其實也就那麼一回事。
下午的時候,不太懂一個接口的做用,和旁邊一個同窗一塊兒去問一我的,他也講出來了。
去接水時,和我一塊兒問的同窗感慨:「畢竟考上本科的,和咱們這種轉本接本的渣渣不同。」
我說:「之前是我不想學,如今想學了……」
他說:「說不定人家也不想學呢。。。」
而後我就不自覺的給本身找了個年齡的藉口,什麼比同年級人小1歲之類的。
人真的很奇怪,遇到挫折就不斷的給本身找藉口,彷彿這樣能讓本身好受一點,想起前幾天看一個博主寫的個籤,真的霸氣側漏。
只爲成功找方法,不爲失敗找藉口。