單例模式
配置檔案儲存資料庫資訊
data access object(資料訪問物件)
位於業務邏輯和持久化資料之間
實現對持久化資料的訪問
dao起著轉換器的作用,將資料在
實體類和資料庫記錄之間進行轉換
1、dao介面
public
inte***ce
basedao
2、dao實現類
public
class
basedaoimpl
implements
basedao
@override
public
void
getconn
(string driver, string url, string user, string pwd)
catch
(classnotfoundexception e)
trycatch
(sqlexception e)
}@override
public
void
query
(string sql, string.
.. params)
rs=pst.
executequery()
;}catch
(sqlexception e)
}@override
public
boolean
update
(string sql, string.
.. params)
num=pst.
executeupdate()
;}catch
(sqlexception e)
return num>0?
true
:false;}
@override
public
void
close()
if(null!=pst)
if(null!=conn)
}catch
(sqlexception e)
}}
3、實體類student
實體類的屬性和資料庫的欄位名相對應
public
class
student';
}public
intgetstu_id()
public
void
setstu_id
(int stu_id)
public string getstu_name()
public
void
setstu_name
(string stu_name)
public
intgetgrade_id()
public
void
setgrade_id
(int grade_id)
public string getgender()
public
void
setgender
(string gender)
public string getaddress()
public
void
setaddress
(string address)
public string getphone()
public
void
setphone
(string phone)
public string getidcard()
public
void
setidcard
(string idcard)
}
4、業務邏輯**
public
class
studentdao
extends
basedaoimpl
}catch
(sqlexception e)
finally
return s;
}public
void
insertstudent()
public
static
void
main
(string[
] args)
}
basedao:運算元據庫的基類
每個執行緒對系統操作都需new乙個basedao例項
初始化時的i/o操作消耗系統資源,影響系統效能
對於每個執行緒,可共享乙個例項
系統執行期間,有且僅有乙個例項
乙個類只有乙個例項——最基本的要求
只提供私有構造器
它必須自行建立這個例項
定義了靜態的該類私有物件
它必須自行向整個系統提供這個例項
提供乙個靜態的公有方法,返回建立或者獲取本身的靜態私有物件
在類載入時不建立例項,採用延遲載入的方式,在執行呼叫時建立例項
特點執行緒不安全
延遲載入(lazy loading)
public
class
testsingle
return t;
}private
testsingle()
public
static
void
main
(string[
] args)
}
在類載入的時候,就完成初始化
特點執行緒安全
不具備延遲載入特性
public
class
testsingle2
static
public
static testsingle2 getinstance()
public
static
void
main
(string[
] args)
}
資料庫發生改變時,要重新修改**,重新編譯和部署
將資料庫資訊寫在配置檔案當中,讓程式通過讀取配置檔案來獲得這些資訊
配置檔案-屬性檔案 .properties字尾 鍵值對
讀取資料庫屬性檔案,獲取資料庫連線資訊
新建db.properties檔案
如果不停地建立例項去載入檔案,會占用資源,可以使用單例模式
單例模式 單例模式
餓漢式 急切例項化 public class eagersingleton 2.宣告靜態成員變數並賦初始值 類初始化的時候靜態變數就被載入,因此叫做餓漢式 public static eagersingleton eagersingleton new eagersingleton 3.對外暴露公共的...
單例 單例模式
簡單的實現乙個單例 instancetype sharedinstance return instance 真正的單例模式 myclass sharedinstance return instance id allocwithzone nszone zone return nil id copywi...
單件模式(單例模式)
readme 0.1 本文部分描述 head first 設計模式 旨在學習 單件模式 單例模式 的相關知識 及其應用 單件模式 1.0 單件模式的應用背景 有一些物件其實我們只需要乙個,比方說 執行緒池,快取,對話方塊,登錄檔等的物件,這都可以通過單件模式來解決 1.1 定義 確保乙個類只有乙個例...