科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道为 DB2 编写基于 Web 的表编辑器 GUI

为 DB2 编写基于 Web 的表编辑器 GUI

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在本文中,我们将为您提供一个完备的 Web 应用程序,我们称之为 DB2 webSQL,这个应用程序允许通过 HTTP 访问 DB2 V8 数据。

来源:IT专家网 2008年6月10日

关键字: IBM 数据库 DB2

  • 评论
  • 分享微博
  • 分享邮件

在我们的应用程序中,模型是驻留在 DB2 数据库中的数据,我们正想通过 HTTP 访问这些数据。视图由一些 JSP(也就是 choosetable.jsp 、 dberror.jsp 和 manipulatetable.jsp )组成,这些 JSP 是由客户机上的 Web 浏览器显示的。最后,控制器由两个 servlet( AuthenticateServlet.java 和 DBManipulateServlet.java )组成,这两个 servlet 执行请求并将结果发送到适当的视图(也就是 JSP)。

通过将 MVC 模式应用到 DB2 webSQL 应用程序,我们将表示逻辑和控制逻辑与数据分离开来。用这种方式开发的 Web 应用程序具有如下优点:

  • 减少了更改的影响。
  • 增加了可维护性。
  • 客户机独立。

此外,这种 MVC 架构允许在应用程序的开发过程中清晰地划分开发人员角色。在我们的应用程序中,表示逻辑(即 JSP 页面)与数据访问和业务逻辑(即两个 servlet 以及它们的助手类)是分开的。为什么这么做有利呢?因为这种清晰的分离让您可以更改应用程序的外观和感觉(look and feel);这种更改比起将所有代码都紧紧混合在一起的情况下的更改要轻松得多。

在 http://www.redbooks.ibm.com/abstracts/sg246585.html上提供的IBM 红皮书 WebSphere Studio Application Developer Programming Guide, SG24-6585-00 中就有一章介绍使用 WebSphere Studio Application Developer 以 MVC 模式进行开发,内容相当精彩。

应用程序概述
就像基于 Swing 的 同类应用程序 一样,DB2 webSQL 允许通过一个 Web 浏览器完成四件与IBM DB2 数据库相关的事情:

  • 查看一个表。
  • 添加一行到一个表中。
  • 从一个表中删除一行。
  • 更新一个表。

进一步研究应用程序
webSQL 应用程序允许查看和更改数据库中的表。为了防止对数据库的未授权访问,您必须通过登录来使自己可以合法地访问数据库。 图 2是登录屏幕,当用户首次访问应用程序时就会看到这个屏幕。登录页面的代码是静态的 HTML,存放在 login.html 中。

图 2. 登录进入 WebSQL
登录

该页面要求用户在登录表单中输入每一个域,但不需要输入模式。如果您是在自己的机器上使用该应用程序,机器上也有 DB2、Web 应用程序服务器和客户机,那么这里服务器应填“localhost”。而且,如果您使用了缺省的安装选项,那么端口就是 50000。

当您在登录屏幕上输入了所需的信息并单击 Submit 时,该请求就被发送到 AuthenticateServlet。这个 servlet 接收在登录时输入的信息并验证您是否具有访问数据库的许可。查看一下 AuthenticationServlet.java 的代码。在代码中您将注意到,这里实例化了一个“DBInfo”对象。正是通过这个对象我们才得以建立自己的数据库,才能够收集关于数据库数据的信息(例如,表名、列名,等等)。如果您得到了授权,就会进入下一个屏幕(见 图 3),这个屏幕是由 choosetable.jsp 呈现的,通过这个屏幕可以从一个列表中选择要访问的表。如果您在登录时未得到授权,那么将看到 error.jsp 页面。

图 3. 选择要编辑的表
选择表 

为了收集表名列表,应用程序调用 DBInfo 的 getTables 方法。getTables 方法通过查询 DB2 编目表 sysibm.tables 来收集这些表名。

登录成功之后,您就可以查看和更改 DB2 数据库的内容了。所有这些请求都由 DBManipulateServlet.java 这个 servlet 来处理。

DBManipuateServlet servlet 是一个控制器 servlet,负责处理对在一个表中插入一行、删除一行和更新一行这些操作的请求。它使用一个助手类 DBHandler 来做一些低级的工作。DBHandler 类最重要的部分是 executeSQL() 方法,该方法将执行请求来修改 DB2 数据。

通过查看 executeSQL() 方法的代码我们可以发现,这里使用了一个可滚动的(scrollable) ResultSet 对象。通过使用 JDBC 2.0 API 函数,我们可以在需要的时候将游标移到一个特定的行。我们也可以使 ResultSet 对象成为可更新的,以便于更改我们的行数据。

查看表数据

为了查看特定表的内容,从 Table Chooser 下拉列表中选择一个特定的表,然后单击 Change Table(见 图 3),这将显示出一个如 图 4所示的屏幕。

该屏幕显示表的内容,同时还包括一个名为 Current Function 的下拉列表,通过这个下拉列表您可以更改表中的数据。这个页面是由 manipulatetable.jsp 呈现的。在查看这个 JSP 的代码时请注意,它包含了大量嵌入在 Java Server Page scriptlet 中的 JavaScript。代码中有很多换码符(escape character),这是为了便于容纳 JSP 中嵌入的 JavaScript,即 scriptlet 代码。这里嵌入 JavaScript 是有必要的,因为这样可以呈现用于控制 Add 和 Update 功能的弹出窗口。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章