如何在 SOAPUI 中删除 JDBC 响应中的 table 名称
How to remove table names in JDBC response in SOAPUI
在 SOAPUI 工具中,响应任何数据库步骤,响应包含 tableName.column。
请参考下图
如何从响应中删除 tableName 属性。
我的意思是想问一下,SOAPUI有没有什么设置或者有没有我需要更新的属性文件...
这不取决于 SOAPUI 的设置,它取决于数据库驱动程序。
我按照github的SOAPUI代码,最后发现在内部JDBCTestSteps构造了XML 来自响应的节点名称基于以下代码片段:
...
public static Document addResultSetXmlPart(Element resultsElement, ResultSet rs, Document xmlDocumentResult)
throws SQLException {
ResultSetMetaData rsmd = rs.getMetaData();
...
...
String columnName = "";
if (!StringUtils.isNullOrEmpty(rsmd.getTableName(ii))) {
columnName += (rsmd.getTableName(ii)).toUpperCase() + ".";
}
columnName += (rsmd.getColumnName(ii)).toUpperCase();
String value = rs.getString(ii);
Element node = xmlDocumentResult.createElement(StringUtils.createXmlName(columnName));
...
(可以看到整个方法addResultSetXmlPart
method form XMLUtils
class here)
所以你可以看到 XML 上的节点名称取决于 ResultSetMetaData
getTableName
和 getColumnName
方法。这个 class 是一个接口,这些方法的实现取决于特定的数据库驱动程序版本。
因此,要与您的客户端具有相同的行为,只需检查两者在 SOAPUI_HOME\bin\ext
中是否具有相同的数据库驱动程序。
备注:一旦您或您的客户端更改了 SOAPUI_HOME\bin\ext
中的 .jar
,请重新启动 SOAPUI 以加载新的。
希望这对您有所帮助,
"postgresql-9.1-903.jdbc4" 应该 return 没有 table 名称的结果集。我在没有将 db 驱动程序放置到 SOAPUI_HOME\bin\ext.
的情况下使它工作
在 SOAPUI 工具中,响应任何数据库步骤,响应包含 tableName.column。
请参考下图
如何从响应中删除 tableName 属性。 我的意思是想问一下,SOAPUI有没有什么设置或者有没有我需要更新的属性文件...
这不取决于 SOAPUI 的设置,它取决于数据库驱动程序。
我按照github的SOAPUI代码,最后发现在内部JDBCTestSteps构造了XML 来自响应的节点名称基于以下代码片段:
...
public static Document addResultSetXmlPart(Element resultsElement, ResultSet rs, Document xmlDocumentResult)
throws SQLException {
ResultSetMetaData rsmd = rs.getMetaData();
...
...
String columnName = "";
if (!StringUtils.isNullOrEmpty(rsmd.getTableName(ii))) {
columnName += (rsmd.getTableName(ii)).toUpperCase() + ".";
}
columnName += (rsmd.getColumnName(ii)).toUpperCase();
String value = rs.getString(ii);
Element node = xmlDocumentResult.createElement(StringUtils.createXmlName(columnName));
...
(可以看到整个方法addResultSetXmlPart
method form XMLUtils
class here)
所以你可以看到 XML 上的节点名称取决于 ResultSetMetaData
getTableName
和 getColumnName
方法。这个 class 是一个接口,这些方法的实现取决于特定的数据库驱动程序版本。
因此,要与您的客户端具有相同的行为,只需检查两者在 SOAPUI_HOME\bin\ext
中是否具有相同的数据库驱动程序。
备注:一旦您或您的客户端更改了 SOAPUI_HOME\bin\ext
中的 .jar
,请重新启动 SOAPUI 以加载新的。
希望这对您有所帮助,
"postgresql-9.1-903.jdbc4" 应该 return 没有 table 名称的结果集。我在没有将 db 驱动程序放置到 SOAPUI_HOME\bin\ext.
的情况下使它工作