在上一篇文章中,咱們提到了Titan框架集成的MongoDB功能內部一些比較重要的頂級接口,但咱們平時接觸到比較多的仍是Curd和Finder這兩個類,他們是Titan中對MongoDB直接操做的類,下面來對這兩個類的方法進行一些講解。java
首先咱們須要知道,咱們用於存儲的實體類必須對每個屬性進行註解映射,使用org.titan.framework.facade.annotations.MapperKey這一個類型的註解進行映射,@MapperKey(),參數爲映射該屬性對應的數據庫字段屬性名,好比說我有一個[private String name;],我給他添加一個@MapperKey("Name"),那麼它在Mongo中存儲的Key就爲Name。數據庫
第二點須要知道的是對於用於CRUD進行操做的Repository須要添加Spring的Repository提供注入,而且實現StorageDataProcessor.Mongo類。app
以後該Respository就能獲取到由該頂級接口提供的Curd對象和Finder對象,進行業務邏輯操做。框架
第三點是由於實體類繼承了DataEntity這個框架提供的BaseEntity,在存儲時會擁有額外的默認屬性,分別是Id,version,CreateTime,logicalDel,它們分別是:框架內惟一主鍵,在某些方法內會使用;版本號標記;建立時間;數據刪除標記。spa
1.Curd對象
Curd中有不少的重載方法,沒有重載的方法只有withConverter和load,前者是默認的提供給用戶使用自定義轉換器的方法,然後者是根據表名和惟一Id以及該類類型去讀取這個mongo節點的數據。繼承
add()方法是該類內的插入數據方法,基礎的使用方式參數爲表名以及一個泛型類型,框架會將表名做爲mongo中存儲的表名字,而泛型類型會經過轉換器轉換爲一個mongo節點類型進行存儲。add()擁有一個重載方法,參數爲表名和一個list類型,規定須要指明list中的泛型類型,框架會將該list中全部的對象根據該類型轉化爲mongo節點進行存儲。接口
delete()方法是該類內的刪除數據方法,基礎使用方式參數爲表名和一個泛型類型,框架會查找表名所對應的表數據,並將泛型類型對象經過轉換器轉換爲mongo節點對象,刪除表數據中和該mongo節點對象相同的數據。delete()有一個重載方法,參數爲表名和惟一主鍵ID,這個惟一主鍵就是咱們上邊提到的框架持久化類自動生成的ID,在調用該方法後,框架會查找表名中ID相同的數據進行刪除。get
update()方法是該類內的修改方法,參數爲表名,泛型類型(source),泛型類型(target),框架會根據表名查找對應的表數據,轉換source對象爲mongo節點類型,並匹配表中擁有該節點類型特徵的全部數據,更新爲target,作一個說明,若是有數據在mongo中爲{"name":"小張","age":"12"},{"name":"小李","age":"12"},此時傳入source爲{"name":"小張"},則會將小張對應的數據修改成傳入的target,若是傳入的source爲{"age":"12"},則會將小張,小李兩個數據都修改成傳入的target。it
totalCount()方法是該類內提供的一個查找存在數量的方法,不少業務邏輯有時候不須要查詢完整的數據,而只須要查詢是否存在(驗證)或查詢存在的數量(分頁),此時前者可使用參數爲表名,泛型類型(condition),該方法會將泛型類型轉換爲mongo節點類型,並查找表中是否存在該數據,返回查找到的條數;然後者可使用該方法的重載方法,參數爲一個MongoDBQueryCondition類型,該類型是框架內的一個條件類型,咱們將在下一篇文章中介紹該類的具體使用方式,傳入該類型後,會返回查找到的全部符合條件的條數。
queryByCondition()方法是該類內的條件查詢方法,傳入的參數是MonDBQueryCondition類型,會返回全部符合條件的數據集合,這裏不作過多介紹,將在下一章展現具體的使用方法。
queryAll()方法是該類內的查詢全表數據的方法,參數爲表名,類類型,這裏類類型指定了該數據對應的映射對象,框架會將返回的數據經過轉換器轉換爲該java對象,若映射失敗則會拋出異常,因此通常會使用存儲的類型去接收這些數據。
2.Finder
Finder類主要是用於查詢數據,若一個Repository只須要完成查詢任務,那麼請使用readOnly()方法初始化一個Finder對象。
withConverter()方法和Curd類中同樣,再也不重複贅述。
find()方法是該類內提供的查詢方法,基礎使用參數爲表名,惟一主鍵ID(String),一個類類型,框架會查找與表名相匹配的表,並匹配ID相同的數據,以後經過轉換器轉換爲傳入類類型對應的java對象,若未映射則會拋出相關異常,重載方法參數爲MonDBQueryCondition類型,會返回查找到匹配條件的數據集合,這裏暫時略過。
totalCount()方法和Curd中的方法同樣,不過在該類中只存在參數爲MonDBQueryCondition類型的方法,沒有其餘重載方法。