0

所以我需要用java从lotus domino数据库中获取一些信息。

首先我需要创建一个会话:

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 中获取相同的信息?

4

1 回答 1

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();
}

使用上面的代码,我检索了一个标记为"No"注释文档的字段,该字段是我从一组条目中获得的,这些条目最终形成一个名为 的视图VIEW,并且该视图位于数据库下DATABASE

还有一种称为 Lotus Domino 公式语言的脚本语言,它也用于查询 NSF,您可以在此处了解:Lotus Programming Guide 和 Formula Language

于 2013-02-25T15:18:04.377 回答