1. 程式人生 > >將資料庫的操作程式碼從servlet中剝離,封裝到DAO中

將資料庫的操作程式碼從servlet中剝離,封裝到DAO中

工廠設計模式是所有設計模式中最簡單的設計模式!!!(就是通過工廠來建立一些物件)

工廠模式的典型應用場景:建立物件(當我們感覺到建立物件是件很痛苦的事,會用工廠模式) 

工廠模式:簡單工廠,工廠方法,抽象工廠(要支援建立多個產品,定義一個抽象工廠,抽象工廠中有多個工廠方法,可以建立多個產品)

工廠方法:

抽象工廠:利用工廠方法實現抽象工廠

為了避免直接在servlet中看到操作資料庫的程式碼(直接在servlet中通過JDBC訪問資料庫),並且由於資料庫的不同,操作程式碼也不同,譬如分頁查詢的sql語句,mysql的可以:select * from t_article where title like '%"

+title+"%' limit ?,?,而在oracle中是不可以用limit的。

實現方法為:建立一個介面ArticleDao

然後建立兩個實現了ArticleDao介面的類:ArticleDaoImpl(具體實現了操作MySQL資料庫的類)和ArticleDaoImplForOracle(具體實現了操作Oracle資料庫的類)。

HashMap是執行緒不安全的物件,而Hashtable<>是執行緒安全的物件。

public class Hashtable<K,V> 

extends Dictionary<K,V> 

implements Map<K,V>, Cloneable, java.io.Serializable {}

Properties extends Hashtable<Object,Object>繼承了Hashtable,它有更強大的功能,Properties 可以直接讀取檔案,而且可以將檔案中的鍵值對直接放到Map中來(Properties就是一個Map),呼叫Properties load方法(HashMapHashtable中沒有load方法),能夠 

通常DAO是無狀態的。

Servlet不僅僅可以處理來自客戶端的請求,還可以利用他的init方法來做些我們想做的初始化工作。

任何一個請求servlet發到伺服器端,都會先呼叫servlet中的service

()方法,在service方法中根據請求的Httphead裡面攜帶的有關這個請求方法的資訊,譬如是get或者post方法,然後把這個請求轉發給doGet()或者doPost(),實際上任何一個servlet都有一個唯一的入口,即service()方法,所以可以在到達doGet()或者doPost()方法之前,在service()方法中執行一些操作。

父類中的this是多型的,他是具體的子類物件,而不是父類物件。

Spring的主體思想就是DI(依賴注入)IOC