MongoDB Java Driver 源碼分析(10):com.mongodb 總結(jié)
Posted on 2012-04-15 16:27 zljpp 閱讀(217) 評(píng)論(0) 編輯 收藏
com.mongodb 是 MongoDB Driver 核心類所在的包。其中 Mongo 類是整個(gè) Driver 的入口點(diǎn)。
下面列出之前對(duì)這個(gè)包中的幾個(gè)主要類的介紹:
Mongo 表示一個(gè)數(shù)據(jù)庫(kù)實(shí)例,可能包含多個(gè) Server 。
http://xxing22657-yahoo-com-cn.iteye.com/blog/1236186
DB 表示一個(gè)數(shù)據(jù)庫(kù)連接。
http://xxing22657-yahoo-com-cn.iteye.com/blog/1291183
DBApiLayer 繼承 DB 類。DB 操作的底層實(shí)現(xiàn),通過(guò) Mongo 對(duì)象間接調(diào)用。
http://xxing22657-yahoo-com-cn.iteye.com/blog/1418647
DBTCPConnector 表示 TCP 數(shù)據(jù)連接的類。
http://xxing22657-yahoo-com-cn.iteye.com/blog/1416331
ReplicaSetStatus 表示集群狀態(tài)的類。
http://xxing22657-yahoo-com-cn.iteye.com/blog/1424055
DBCollection 表示數(shù)據(jù)集合的抽象類。
http://xxing22657-yahoo-com-cn.iteye.com/blog/1255181
DBPort 表示數(shù)據(jù)連接端口,維護(hù)一個(gè) Socket。
http://xxing22657-yahoo-com-cn.iteye.com/blog/1424140
DBCursor 用于遍歷 find() 等查詢操作的返回結(jié)果。
http://xxing22657-yahoo-com-cn.iteye.com/blog/1269739
com.mongodb 包中的幾個(gè)類之間的主要關(guān)系如下圖所示:
Mongo 對(duì)其他類的依賴:
DB 和 DBApiLayer:getDB 的返回值類型是 DB,但返回的實(shí)際上是 DBApiLayer 類的實(shí)例
DBTCPConnector:getConnector 返回的是 DBTCPConnector 類的實(shí)例
ReplicaSetStatus:getReplicaSetStatus 返回的是 ReplicaSetStatus 類的實(shí)例
DB 對(duì)其他類的依賴:
DBCollection:createCollection 等方法返回的是 DBCollection 類的實(shí)例
DBApiLayer 對(duì)其他類的依賴:
DB:DBApiLayer 繼承了 DB 類
DBCollection:DBApiLayer.MyCollection 繼承了 DBCollection
DBTCPConnector 對(duì)其他類的依賴:
DBPort:say,call 等方法中調(diào)用了 DBPort 的 say,call 等方法
ReplicaSetStatus 對(duì)其他類的依賴:
DBPort:內(nèi)部類 Node 的 update 方法調(diào)用了 DBPort 的 runCommand 方法
DBCollection 對(duì)其他類的依賴:
DBCursor:find 方法構(gòu)造并返回 DBCursor 類的實(shí)例
com.mongodb.gridfs 對(duì) com.mongodb 的依賴主要表現(xiàn)為 GridFS、GridFSDBFile、GridFSInputFile 對(duì) DB、DBCollection、DBCursor 的依賴。
其中:
GridFS 的 getDB 方法的返回值類型是 DB
GridFS 的 getFileList 方法的返回值類型是 DBCursor
GridFS 和 GridFSDBFile 的 find、remove 等方法調(diào)用了 DBCollection 的 find、remove 等相應(yīng)的方法。
GridFSInput 的 _dumpBuffer 方法調(diào)用了 DBCollection 的 save 方法
下面列出之前對(duì)這個(gè)包中的幾個(gè)主要類的介紹:
Mongo 表示一個(gè)數(shù)據(jù)庫(kù)實(shí)例,可能包含多個(gè) Server 。
http://xxing22657-yahoo-com-cn.iteye.com/blog/1236186
DB 表示一個(gè)數(shù)據(jù)庫(kù)連接。
http://xxing22657-yahoo-com-cn.iteye.com/blog/1291183
DBApiLayer 繼承 DB 類。DB 操作的底層實(shí)現(xiàn),通過(guò) Mongo 對(duì)象間接調(diào)用。
http://xxing22657-yahoo-com-cn.iteye.com/blog/1418647
DBTCPConnector 表示 TCP 數(shù)據(jù)連接的類。
http://xxing22657-yahoo-com-cn.iteye.com/blog/1416331
ReplicaSetStatus 表示集群狀態(tài)的類。
http://xxing22657-yahoo-com-cn.iteye.com/blog/1424055
DBCollection 表示數(shù)據(jù)集合的抽象類。
http://xxing22657-yahoo-com-cn.iteye.com/blog/1255181
DBPort 表示數(shù)據(jù)連接端口,維護(hù)一個(gè) Socket。
http://xxing22657-yahoo-com-cn.iteye.com/blog/1424140
DBCursor 用于遍歷 find() 等查詢操作的返回結(jié)果。
http://xxing22657-yahoo-com-cn.iteye.com/blog/1269739
幾個(gè)類之間的主要關(guān)系
com.mongodb 包中的幾個(gè)類之間的主要關(guān)系如下圖所示:

Mongo 對(duì)其他類的依賴:
DB 和 DBApiLayer:getDB 的返回值類型是 DB,但返回的實(shí)際上是 DBApiLayer 類的實(shí)例
DBTCPConnector:getConnector 返回的是 DBTCPConnector 類的實(shí)例
ReplicaSetStatus:getReplicaSetStatus 返回的是 ReplicaSetStatus 類的實(shí)例
DB 對(duì)其他類的依賴:
DBCollection:createCollection 等方法返回的是 DBCollection 類的實(shí)例
DBApiLayer 對(duì)其他類的依賴:
DB:DBApiLayer 繼承了 DB 類
DBCollection:DBApiLayer.MyCollection 繼承了 DBCollection
DBTCPConnector 對(duì)其他類的依賴:
DBPort:say,call 等方法中調(diào)用了 DBPort 的 say,call 等方法
ReplicaSetStatus 對(duì)其他類的依賴:
DBPort:內(nèi)部類 Node 的 update 方法調(diào)用了 DBPort 的 runCommand 方法
DBCollection 對(duì)其他類的依賴:
DBCursor:find 方法構(gòu)造并返回 DBCursor 類的實(shí)例
com.mongodb.gridfs 對(duì) com.mongodb 的依賴
com.mongodb.gridfs 對(duì) com.mongodb 的依賴主要表現(xiàn)為 GridFS、GridFSDBFile、GridFSInputFile 對(duì) DB、DBCollection、DBCursor 的依賴。
其中:
GridFS 的 getDB 方法的返回值類型是 DB
GridFS 的 getFileList 方法的返回值類型是 DBCursor
GridFS 和 GridFSDBFile 的 find、remove 等方法調(diào)用了 DBCollection 的 find、remove 等相應(yīng)的方法。
GridFSInput 的 _dumpBuffer 方法調(diào)用了 DBCollection 的 save 方法