基于 Web 的数据访问对象
通用通过 HTTP 访问数据库中的数据
当存在安全策略或数据库连接在广域网时,我们无法为数据库提供商访问数据库中的数据。以移动应用程序开发为例。在这种情况下,我们不能使用数据库提供商。通常在 Web 服务器上制作基于 XML 的数据后,数据通过 HTTP 或 HTTPS 发送到客户端设备。客户端设备上的移动应用程序解析数据。制作和解析基于 XML 的数据不具有通用性。这会困扰我们,并花费我们太多时间。在本文中,我将通用通过 HTTP 访问数据库中的数据。
基于 Web 的数据访问对象(Web-DAO)意味着为 Web Services 访问数据库中的数据,而不是像 Oracle Client 这样的数据库提供商。ASP.Net 的 Web Services 提供了一种轻松制作和解析基于 XML 的数据的方法。并且 .NET Framework 的 System.Data.DataTable 类对于处理记录集形式的数据很有用。下图展示了如何通过 ASP.NET 的 Web Services 访问数据库中的数据。
背景
首先,我们必须了解如何打开 Web Services 以及客户端设备如何访问 Web Services。请参考以下文章。第一篇文章详细描述了 ASP.NET 中的 Web Service 是什么以及如何打开它。但如果您想发布真正的 Web Service 进行 Web-DAO,您将不得不更多地学习 ASP.Net 的 Web 服务。第二篇文章描述了客户端设备的托管代码应用程序如何访问 Web Services。
使用代码
1. 在 ASP.NET 中为 Web-DAO 打开 Web Service
我们必须为 Web-DAO 设置 ASP.NET Web Service。Web-DAO 为数据库提供商访问数据库中的数据。由于示例中使用了 Oracle,您必须输入 Oracle 服务名、用户 ID 和密码。请打开项目 [WSWebDAO] 的 C# 文件 [WebDAO.asmx] 并输入您的 Oracle 数据库信息,如下所示。
static string strDataSource = "DataSource"; static string strUserID = "UserID"; static string strPassword = "Password";
请运行 Web Service for Web-DAO。然后 ASP.NET Development Server 将自动运行。如果您看到下图,说明 Web Service for Web-DAO 已正确打开。
我们可以检查它是否能正常运行。请点击 [GetRecordSet] 链接,并在 [strSQL] 文本框中输入 SQL [select sysdate from dual]。您将能够看到 Oracle 服务器的系统时间。
2. 通过 Web Service for Web-DAO 访问数据库中的数据
请运行项目 [WebDAOTestManaged] 的托管代码应用程序。在 Textbox[tbWebAddress] 中输入 Web Service 的 URL。这是 ASP.Net Development Server 的 URL(在本例中为 https://:3342)。请在 Textbox[tbGetDataRecord] 中输入 SQL 查询。您将能够获得结果数据。
结论
我描述了如何通用通过 HTTP 访问数据库中的数据。Web-DAO 是一种为 Web Services 访问数据库中的数据的方法,而不是数据库提供商。当我通过 Web-DAO 开发托管代码应用程序时,我们不需要安装 Oracle Client 并且可以轻松安装应用程序。当我添加访问另一个移动应用程序时,我节省了大量时间。我们需要记住两件事。首先,Web-DAO 一次获取所有数据,即使数据量很大。因此,我们需要考虑访问速度和时间。其次,我们考虑如何维护安全性,因为如果 Web-DAO 在广域网上打开,任何人都可以访问数据库中的数据。
下次
下次,我将描述如何在非托管代码应用程序(如非托管 C++)上进行访问。我将介绍如何在 iOS 和 Android 系统上通过 Web-DAO 访问数据库中的数据。