2013-02-25 97 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

相关问题