DAO模式 單例模式

2021-10-25 22:28:41 字數 4057 閱讀 2411

單例模式

配置檔案儲存資料庫資訊

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 定義 確保乙個類只有乙個例...