Hadoop基礎之HDFS
阿新 • • 發佈:2020-10-25
1. StudenDaoListImpl.java與StudentDaoArrayImpl.java有何不同?
StudenDaoListlmpl,java(Listlmpl)中是利用列表的方法來儲存資料《而StudentDaoArraylmpl.java(Arraylmpl)中則是利用陣列的方法來儲存資料。且兩者的查詢資料方式也不同,Listlmpl是直接搜尋列表中的資料,而Arraylmpl則是先判斷該陣列是否為空,在進行比較查詢。插入資料中,
Listlmpl是直接新增到列表中的最後一位,Arraylmpl則是從頭開始查詢為空的陣列,把資料放進該空陣列中。
2. StudentDao.java檔案是幹什麼用的?為什麼裡面什麼實現程式碼都沒有?
定義一個StudentDao介面,宣告三個方法。其他類可以通過implements實現介面,引用該介面內的方法。因為介面只有通過其他類的引用才能實現,而其它類可以擁有著相同的方法宣告,不同子類的相同方法宣告也可以有著不同的實現程式碼。
3. 使用搜索引擎搜尋“Java DAO”,選出幾句你能看懂的、對你最有啟發的話。請結合介面知識去理解。
DAO模式的作用
1隔離業務邏輯程式碼和資料訪問程式碼 //像使用介面一樣,將方法與資料訪問分離開。
2.隔離不同資料庫的實現 //就像引用介面一樣,不同資料庫的相同方法宣告的作用都不一樣。
4. 嘗試執行Test.java。根據註釋修改相應程式碼。結合參考程式碼回答使用DAO模式有什麼好處?
package stumanagement; public class Test { public static void main(String[] args) { Student[] students = new Student[3]; students[0] = new Student("Tom"); students[1]= new Student("Jerry"); students[2] = new Student("Sophia"); StudentDao sdm = new StudentDaoArrayImpl(50);//使用陣列實現 //StudentDao sdm = new StudenDaoListImpl();//使用列表實現 //往後臺寫資料,無需考慮後臺是什麼(到底是資料庫、檔案、陣列、List) //因為這裡是面向StudentDao介面 System.out.println("===========寫入學生========"); for(Student e:students){ if (!sdm.addStudent(e)){ System.out.println("新增學生失敗"); }else{ System.out.println("插入成功!!"); } } System.out.println("===========顯示所有學生========"); sdm.diplayAllStudents(); System.out.println("===========查詢學生========"); Student temp = sdm.getStuByName("Tom") ; if(temp == null){ System.out.println("查無此人"); }else{ System.out.println(temp); } } }
兩個類的執行結果都相同。
好處:
1、隔離了資料訪問程式碼和業務邏輯程式碼。業務邏輯程式碼直接呼叫DAO方法,避免發生程式碼混亂。分工明確,將資料訪問介面和資料訪問實現像隔開,降低了藕合性,提高了可複用性。
2.資料訪問底層實現的分離。DAO模式將資料訪問分為抽象層和實現層,分離了資料使用和資料訪問的底層實現細節。這樣可以在保持上層結構不變的情況下,通過更改底層實現來修改資料訪問的機制,比如只要通過修改資料訪問層實現,我們就可以部署在不同資料庫平臺上。