功能:定義乙個運算元據庫的庫,支援 mysql mongodb mssql
要求:mysql、mssql 與 mongodb 功能一樣,都有 add、update、delete、get 方法
注意:約束統一的規範,以及**復用
解決方法:需要約束規範所以要定義介面,需要**復用所以用到泛型
介面:在物件導向的程式設計中,介面是一種規範的定義,它定義了行為和動作的規範
泛型:通俗理解泛型就是解決類、介面、方法的復用性
下面以 mongodb 為例:
inte***ce
dbi<
t>
// 定義乙個操作 mysql 資料庫的類,注意:要實現泛型介面,這個類也應該是泛型類
export
class
mongodb
<
t>
implements
dbi<
t>
delete
(id: number)
: boolean
get(id: number)
: any,
,]console.
log(list)
return list
}update
(info:
t, id: number)
: boolean
}
import
from
'./db'
// 操作使用者表,定義乙個 user 類和資料表做對映
class
userclass
}// 約束傳入型別必須是 user 類
let usermodel =
newmongodb
()export
// 同 user.ts
import
from
'./db'
class
articleclass
}let articlemodel =
newmongodb
()export
import
from
'./user'
import
from
'./article'
let user =
newuserclass
('bob'
,'123123'
)usermodel.
add(user)
// 新增資料
usermodel.
get(1)
// 獲取資料
let article =
newarticleclass
('cat'
,'a cat story'
)articlemodel.
add(article)
articlemodel.
get(
1)
模擬資料庫類
include using namespace std 抽象類,相當與介面 class database 程式設計師使用資料開發 class program 資料庫廠商具體的訪問驅動 class oracle public database void query string sql class d...
MatrixCursor 模擬資料庫
原文 contentprovider對外共享資料的時候的query 方法是需要乙個cursor的,但是如果沒有資料庫,而專案又需要從contentprovider讀取資料的時候怎麼辦?更糟糕的是其他方法操作也都是需要cursor的。此時就需要matrixcursor了。相當有趣,它相當於為你模擬了乙...
event模擬資料庫鏈結
from threading import thread,event,currentthread import time e event def conn mysql count 1 while e.is set 沒收到訊號執行 if count 3 超過三次,彈出錯誤 raise connecti...