WEB开发网
开发学院软件开发Java 在 Apache 目录服务器中存储 Java 对象,第 2 部分... 阅读

在 Apache 目录服务器中存储 Java 对象,第 2 部分:在 ApacheDS 中存储、搜索和检索 Java 对象(下)

 2010-04-19 00:00:00 来源:WEB开发网   
核心提示: 清单 10 的前 15 个步骤与前面的示例类似,在这些步骤中,在 Apache 目录服务器中存储 Java 对象,第 2 部分:在 ApacheDS 中存储、搜索和检索 Java 对象(下)(9),只是搜索并提取要更新的 Java 对象,在后面的步骤中,应用程序 9. 综合在一起总结这篇文章时,

清单 10 的前 15 个步骤与前面的示例类似。在这些步骤中,只是搜索并提取要更新的 Java 对象。在后面的步骤中,将更新和存储对象。

更新和存储 Java 对象

在步骤 16 中,通过调用 Java 对象上的方法,更新 Java 对象中包含的数据。数据更新之后,需要存储 Java 对象编辑过的版本。在执行这个操作之前,需要做两件事:

获得命名上下文:更新现有条目,这意味着您想把已更新的数据写入它以前所在的命名上下文中。要做到这一点,则需要知道已更新条目的命名上下文。将搜索上下文(用来搜索对象的上下文)与对象的 RDN 结合,就可以形成 Java 对象的命名上下文。在 清单 10 的步骤 17 中可以看到这点。

将所有属性写入已更新的 Java 对象:在将更新的 Java 对象写回 ApacheDS 时,是在同一命名上下文上写入新的数据条目。所有与数据条目有关的属性都将丢失。所以,需要将数据条目的所有属性写回已更新的 Java 对象。在清单 10 的步骤 18 中,我的处理是从搜索结果读取所有属性,并将它们包装在属性集合中。

最后,在步骤 19 中调用 DirContext.rebind() 方法。rebind() 方法接收的参数就是在 StoreBobPreferences 应用程序的 清单 4 的步骤 4 中传递给带有三个参数的 bind() 方法的参数。

bind() 和 rebind() 方法之间惟一的区别是 rebind() 方法将数据条目存储在现有数据条目已经占据的命名上下文中,从而有效地用新数据更新现有条目。

应用程序 9. 综合在一起

总结这篇文章时,我将用最后一个应用程序把迄今为止学到的所有概念都组合到一个简单的、可重用的对象中,这个对象可以在 ApacheDS 中存储、搜索、删除和更新 Java 对象。LDAP4JavaObjects 类如清单 11 所示:

上一页  4 5 6 7 8 9 10  下一页

Tags:Apache 目录 服务器

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接