|
作者:Beth Stearns 和 Craig McClanahan
|
|
|
| 几乎所有的应用程序都需要访问某些数据,这些数据经常存储在关系数据库表或某类列表中,如向量或数组。通常,您需要从数据源中读取数据,而多数情况下,您还必须更新这些数据。Sun Java Studio Creator 2 集成开发环境(作为其应用程序模型的另一种增强功能)提供了数据提供器组件,这些组件可以简化数据源的访问,无论该数据源是关系数据库表、普通文件、Web 服务、向量、数组,还是某种其他类型的数据存储。 |
数据提供器组件是一种用于包装数据源的非可视抽象组件,它代表一种更通用且更灵活的数据绑定机制。纵观组件面板,您可以看到有许多不同种类的数据提供器,其中包括适用于缓存的行集、结果集、列表、数组、映射、表行及方法结果的数据提供器。请参见图 1。
图 1:可用的数据提供器 |
让我们来看一个方案,以便了解数据提供器的工作方式。将数据表从“服务器”窗口拖放到 Web 页时,IDE 会立即为该表创建数据提供器组件和行集。实际上,数据提供器将包装特定的数据表,而且通过对话框可以设置各种数据绑定属性。您可以使用数据提供器组件来代替行集,对表中的数据进行读取和更新。通过将数据表拖放到页面上,还可以生成能够读取数据表的代码。
例如,图 2 显示了将表组件拖放到某一页面,然后再将数据源表 (PERSON) 拖放到该表组件时发生的情况。IDE 不仅会将 PERSON 数据表绑定到该表组件,从而自动更改其列标题以与表字段匹配,而且还会将一个行集 (personRowSet) 添加到 SessionBean1 中,并将一个数据提供器 (personDataProvider) 添加到页面中。您可以在“概要”窗口的 "SessionBean1" 和 "newPage" 下看到这两个组件。
图 2:在页面中添加表 |
实际上,数据提供器为各种数据源提供了一个简单的接口。数据提供器 API 实现了行和列的概念、保持了光标在表的行和列中的位置,并保留了映射到列名的数据键。数据提供器 RowKey 索引类似于 RowSet 索引。但是,在处理基础数据表(如更改行集中字段的值)时,RowSet 索引会发生更改,而数据提供器 RowKey 值始终保持其当前值。您可以在 RowSet 索引中分别检索和设置 RowKey 值。
数据提供器的另一个显著优点是为数据源提供了通用接口。例如,您可以先将数据提供器绑定到数据库,稍后再更改为绑定到 Web 服务或某些其他数据源。更改这些绑定时,您只需更改数据提供器,而无需更改代码的其余部分。
|