使用pureQuery优化现有的JDBC应用程序 - 编程入门网
Run...,将应用程序的运 行配置修改为执行代码路径 1 和 2。
选择 Arguments tab,删除最后一个程序参数(1)。 图 39. 修改运行配置执行两个代码路径 单击 Run。 使用pureQuery优化现有的JDBC应用程序(17)时间:2011-05-20 IBM Patrick Titzler应用程序应该会顺利执行,不会出现警告或错误。注意,应用程序已经成功地 处理了之前由于当驱动程序处于捕捉模式时从未运行代码路径 2 而未被捕捉的 SQL 语句。 驱动程序如何处理 SQL 语句:PureQuery for JDBC applications 允许应用 程序开发人员或 DBA 在部署时才决定以动态模式(例如在开发时)、混合模式( 在测试时)还是静态模式(在生产时)运行应用程序的 SQL: 如果 executionMode 属性被设置为 DYNAMIC,则无论之前是否已被捕捉,所 有 SQL 语句都将动态地执行。 如果 executionMode 属性被设置为 STATIC,前面被捕捉、配置和绑定的 SQL 将静态地执行。但是,如果 allowDynamicSQL 属性被设置为 TRUE(默认设置) ,那么其他 SQL 语句将以 DYNAMIC 模式执行。如果该属性被设置为 FALSE,那 么这些语句将得不到处理,并抛出一个 SQLException。 修改驱动程序的 SQL 执行模式,并重新运行示例应用程序的代码路径 1 和 2 ,以便当一条 SQL 语句因缺少元数据信息而不能静态地执行时,抛出一个异常。 打开驱动程序配置文件 DB2JccConfiguration.properties。 利用内容辅助(<CTRL> <SPACE>),添加属性 allowDynamicSQL 并赋以值 FALSE,如 图 39 所示。 图 40. 防止 SQL 动态执行 保存这个配置文件(<CTRL> <S>),但不要关闭编辑器。一会儿 您还要修改它。 在 Package Explorer 中找到 BasicJDBCApp.java,右键单击它,并从上下文 菜单中选择 Run As>Java Application,重新运行示例应用程序。 应用程序应该终止,并收到一个错误,表明一个 SQL 异常(见图 41)被抛出 。 图 41. 由于缺少元数据,SQL 不能静态地执行 使用pureQuery优化现有的JDBC应用程序(18)时间:2011-05-20 IBM Patrick Titzler捕捉剩下的 SQL 增量式地捕捉 SQL 在驱动程序配置为仅以静态模式执行 SQL 语句时,有些 SQL 语句没有被捕捉 ,要解决处理这些 SQL 语句的问题,必须再完成一次为 JDBC 应用程序启用 pureQuery 的迭代过程: 通过运行前面没有运行过的用例,增量式地捕捉缺少的 SQL 语句。 配置新捕捉到的元数据。 重新绑定数据库包,增加新的 SQL 语句。 重新运行应用程序,验证它在静态执行模式下是否有正确的行为。 为了解决防止示例应用程序静态地执行所有 SQL 语句的问题,必须遵循以下 步骤: 捕捉执行代码路径 2 时发出的 SQL 语句。 在驱动程序配置文件 DB2JccConfiguration.properties 中修改 executionMode 和 captureMode 属性,以便捕捉并动态地执行 SQL 语句,如图 42 所示。 图 42. 允许捕捉 SQL 注意,还可以使用一个稍微不同的驱动程序配置,该配置将导致以下运行时行 为,但产生的结果是一样的: 如果前面已捕捉、配置和绑定 SQL,它则静态执行 如果前面没有捕捉、配置和绑定 SQL,它则动态执行 如果 SQL 动态执行,则捕捉它
(以上例子中使用了换行,这仅仅是为布局考虑)。 在运行配置中使用以下程序参数之一(用有效的数据库名、用户 ID 和密码替 换参数值),重新运行示例应用程序,并执行代码路径 2(或执行全部 2 条代码 路径),捕捉缺少的 SQL 语句。
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |