本主题介绍了 Parasoft JDBC 驱动器,它用于记录数据库查询及其相应的结果数据。一旦 Parasoft JDBC 驱动程序完成配置,并且 AUT 设置为与它相互通讯,则可以使用 JDBC 控制器来切换 UI 中的模式(如:转移、记录、虚拟化)。
本章包含:
使用 Parasoft JDBC 驱动程序和 JDB 控制器执行数据库虚拟化(如 记录数据库中所述)。Parasoft JDBC 驱动程序是一种特殊的 JDBC 驱动程序,它可以充当应用程序与其常规 JDBC 驱动器之间的中间人。它实现了 JDBC API,这些 API 允许其像任何标准数据库驱动器配置一样到 Java 应用程序服务器中。
一旦完成配置,驱动程序可以:
通过 Virtualize Ui(或环境管理源 Ui),你可以使用 JDBC 控制器来控制一个 Parasoft JDBC 驱动程序或一组驱动程序的设置。例如,可以对部署到集群环境中的 JDBC 驱动程序进行单点控制。或者,如果在一个 AUT 中使用多个驱动程序(或数据源),则可以协调它们的部署配置(例如,可以让它们同时切换模式)。
使用 UI 控件,可以在无需重启 AUT 的情况下更改模式(录制、转移、虚拟化、混合、容错)和其他 Parasoft JDBC 驱动程序设置(如日志)。如果在 AUT 不在线时更改设置,则这些更改将在启动时应用。
Parasoft Virtualize 支持 SQL SELECT 语句的录制和虚拟化。支持具有多个 in、out 和 inout 参数(包括 Cursor/ResultSet 参数)的存储过程和函数。对于 Oracle 和 DB2 来说,它们支持记录具有多个 out 参数的存储过程,其中每个参数返回一个指针。
在查询路由到实际 JDBC 驱动程序(如:在录制或转移模式期间)时,INSERT、UPDATE 和 DELETE 查询被委托给原始数据库/驱动程序。
在查询被发送到虚拟资产时,调用 Statement.executeUpdate() 方法将返回值 0,Parasoft Virtualize 将不会模拟 INSERT、UPDATE 和 DELETE 语句的实际行为。因此,记录到 Virtualize 的任何数据源都将不会因这些 SQL 查询而更改。
在 CallableStatement 关闭时,或者当所有声明的 out 参数和结果集都被读入时,都会记录结果。若要记录结果集,则必须对它们调用 close。调用 Statement 或 PreparedStatement 的 close 将意味着将不记录来自结果集的数据。记录的行名基于用来检索它们的接口方法。调用 ResultSet.getString(String columnLabel) 将在记录数据中使用 columnLabel。如果使用行索引,则记录的数据将使用索引号作为列标签。
当结果集不是通过显式调用 ResultSet.close() 关闭时,结果将在 Parasoft JDBC 驱动程序停止记录时记录。录制结束后,Parasoft JDBC 驱动程序将检查每个不是显式关闭的结果集,然后将它们提交到要记录的 Virtualize 服务器。
Virtualize 和 Parasoft JDBC 驱动程序通过 CallableStatement 接口支持存储过程。Virtualize 将在对其实现没有任何可见性的情况下,模拟存储过程的返回和输出参数值。如果存储过程执行 UPDATE、INSERT 或 DELETE 查询,则 Virtualize 中记录的数据将不会受到该查询的影响。
支持返回一个 ResultSet(要么作为输出参数,要么作为函数返回值)的函数/过程。
目前不支持以下类型: