typescript 模擬資料庫操作

2021-09-24 03:26:46 字數 1535 閱讀 9290

功能:定義乙個運算元據庫的庫,支援 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...