2013-02-25 99 views
0

所以我需要從java的lotus domino數據庫中獲取一些信息。Lotus Domino Datatable列

起初我還需要創建一個會話:

Session session = NotesFactory.createSession(host, user, password); 

然後,我需要得到數據庫:

Database db = session.getDatabase(serverName, dbName); 

在下一步我需要得到的信息。這個數據庫看起來如何與簡單的關係數據庫相比?我的意思是,在關係數據庫中,我可以使SQL查詢如"SELECT table FROM room WHERE table.hieght < 10",例如該查詢將如何從Lotus Domino DB獲取相同的信息?

+0

註釋數據庫不是關係數據庫。 – 2013-02-25 14:55:25

+0

我知道。但問題是,關係數據庫和如何獲得這些信息是如何與信息看起來相互矛盾的? – 2013-02-25 15:06:20

回答

4

Notes使用稱爲NSF(Notes Storage Facility)的面向文檔的數據庫來管理像富文本和文件這樣的半結構化數據。數據存儲爲與關係數據庫不同的文檔和視圖。

要查詢NSF,您可以使用Java API,但如果您習慣於關係數據庫和標準Java集合,那麼它們很難使用。 (即大部分集合返回類型都是不可迭代的,所以你必須使用while循環遍歷它們:S,同時也期望有很多奇怪的例外)。下面是一個例子:

Session session = NotesFactory.createSession(host, user, password); 
View view = session.getDatabase(DATABASE).getView(VIEW); 
ViewEntryCollection allEntries = view.getAllEntries(); 
ViewEntry entry = allEntries.getFirstEntry(); 
while (entry != null) { 
    if (entry.isDocument()) { 
     Document doc = entry.getDocument(); 
     String no = doc.getItemValueString("No"); 
    } 
    entry = allEntries.getNextEntry(); 
} 

使用I檢索標記爲"No"上的筆記文檔,我從最終形成一個名爲VIEW視圖項的集合有一個字段上面的代碼,並且該視圖是數據庫下DATABASE

還有一種叫做Lotus Domino Formula Language的腳本語言,它也被用來查詢NSF,你可以在這裏瞭解到:Lotus Programming Guide and Formula Language

+0

Tnx。一些理解來到我身上! – 2013-02-25 15:21:22

+5

如果是大視圖(> 100條記錄),那麼這段代碼將會崩潰。永遠記得回收()。 :) – 2013-02-25 16:00:40