简介
DB2 Universal Database (UDB)JDBC 驱动程序已被证明是一种强大的,并且得到 IBM 支持的技术。Jython 是 Python 编程语言百分之百的纯 Java 实现。
首先,我们将告诉您 Jython 为何在编写 DB2 JDBC 工具方面功能强大、使用方便且充满乐趣。然后 ,我们将展示如何安装带有 DB2 JDBC 驱动程序的 Jython。最后,我们将演示几个查询示例,以及一个 在 Jython 中使用批量插入的 QA 工具。
为何使用 Jython?
以下是 Neo 的一个真实故事。Neo 是全职的服务器端 Java 开发人员。他使用 Python 编写实用程序 ,例如解析 XML 或通过 HTTP 协议连接充当信用卡网关和订单履行网关的 Web 服务。因为 Python 的类 型是动态的,且具有简洁的数据结构语法,比如列表和字典,所以 Neo 发现它通常可以减少代码行。
Neo 在处理一个股票交易应用程序,该应用程序是用部署在 AIX 上的 WebSphere Application Server 5.x 和 DB2 8.x 构建的。在实时系统中,每隔几分钟就要向表 STOCKQUOTE 输入 10,000 条 XML 格式的记录,以更新股票行情。执行批量输入的代码是作为另一系统的组成部分而由另一团队完成的,所 以他无法获得源代码。此外,STOCKQUOTE 上有一个触发器,一旦股票价格下跌至一个预定义的阈值如 $10,该触发器就发出警报。项目经理给 Neo 分配了任务,让他用 Mercury Interactive 的 LoadRunner 或 Segue 的 SilkPerformermeasure 等自动化加载测试工具,测量在批量输入的情况下触发器所带来的 性能影响。因此,Neo 需要编写一个批量输入的仿真器(simulator),用于模拟向 STOCKQUOTE 表加载 10,000 行记录。
开始,Neo 希望用纯 java JDBC 编写该仿真器,但是冗长的类型声明、编辑/编译/测试周期将占用他 大量宝贵的开发时间。而且,因为 Python 的效率收益过去给 Neo 留下了深刻印象,所以他想是否可以 用 Python 编写代码来使用 DB2 JDBC 驱动程序。如果可行,他就可以在几小时之内,用 Python 整洁的 列表和字典等数据结构,以及列表理解(list comprehension)等整洁的函数编程功能来编写这个代码。 在进行一些研究之后,他发现 Jython 十分方便,且正适合该工作。因为十分熟悉 DB2 JDBC 的编程,并 拥有 Jython 参考资料,所以 Neo 在几小时之内就编写并测试了批量插入仿真器。他十分惊讶于 Jython 的强大功能,Jython 中包含了两大最佳领域:巨大的 Java 库和整洁的 Python 功能。因此,批量输入 仿真器的最终代码比用纯 Java JDBC 所编写的源代码要少很多。源代码的总量影响很大,因为它可以减 少程序员在编程时需要处理的细节。因此,降低源代码量将减小软件的复杂性,从而节省成本。
Jython JDBC 安装
安装 Jython 2.1
为了运行本文中的示例,您需要安装 Jython 2.1 和 JVM。您可以从 Jython 主页获得 Jython。如果 将 Jython 安装路径添加到平台上的 PATH 环境变量中,安装就十分方便。
Charming Jython也包 含了安装 Jython 的章节。
启用 DB2 UDB V8 中的 SAMPLE 数据库
本文所展示的示例使用了 SAMPLE 数据库。既可以通过运行与 DB2 一起发布的 db2sampl 程序来创建 SAMPLE 数据库,也可以从 DB2 安装工具菜单中的 FirstSteps 来创建。此外,还必须创建 DB2 ID/口令 。本文中,我们使用 vyang/jythonrocks。