0

我正在尝试在两个不同的数据库(Oracle 和 Postgres)之间动态更改连接字符串所以我在项目级别有一个全局连接字符串,如下所示 在此处输入图像描述

我正在尝试通过建立连接字符串从 groovy 脚本为 oracle 和 postgres 设置此连接字符串

if(databaseType.contains("postgre"))
{

   def postgresConnstring=  "jdbc:postgresql://"+databaseHost+":"+databasePort+"/"+databaseUsername+"?user="+databaseUsername+"&password="+databasePassword

  testRunner.testCase.testSuite.project.databaseConnectionContainer.getDatabaseConnectionByName('GhixDB').setConnectionString(postgresConnstring)
}

else
 if (databaseType.contains("oracle"))
{ 
    def oracleConnString=  "jdbc:oracle:thin:"+databaseUsername+"/"+databasePassword+"@"+databaseHost+":"+databasePort+":"+databaseSid

    testRunner.testCase.testSuite.project.databaseConnectionContainer.getDatabaseConnectionByName('GhixDB').setConnectionString(oracleConnString)


}

Oracle 的 JDBC 连接字符串如下所示。jdbc:oracle:thin:${#Project#databaseUserName}/${#Project#databasePassword}@${#Project#databaseHost}:${#Project#databasePort}:${#Project#databaseSid}

因此,当我在项目级别设置此连接字符串时,我看到数据库配置正在获取部分密码并在数据库主机字段中看到它。如下所示。

在此处输入图像描述

当我们手动设置连接字符串时,我看到密码值设置为 PASS_VALUE。但是当我从超过 10 个字符长的脚本中动态传递一些真实密码值时,连接字符串会从密码中提取剩余的字符并传递给主机名。

有人可以帮我解决这个问题吗?

4

0 回答 0