如何使用groovy在连接字符串中使用全局属性值

时间:2016-04-26 07:31:44

标签: jdbc groovy soapui

我尝试在连接中使用全局属性值,以便我可以从一个地方更改它,它将应用于我的所有脚本。 这是我的连接字符串,当我将IP直接放在字符串

中时,它工作正常
def dbName = context.expand( '${DB_Name}' )
def dbUser = context.expand( '${DB_Username}' )
def dbPass = context.expand( '${DB_Password}' )
def con = Sql.newInstance("jdbc:sqlserver://192.168.111.111:1433;" + "databaseName=" + dbName, dbUser, dbPass, 'com.microsoft.sqlserver.jdbc.SQLServerDriver')

但是当我放置全局属性时,它会抛出错误"与主机' 192.168.111.111',端口1433的TCP / IP连接失败。错误:" null。验证连接属性。确保主机上正在运行SQL Server实例并接受端口上的TCP / IP连接。确保防火墙不阻止与端口的TCP连接。"。"

def dbServer = context.expand( '${DB_Server}' )
def dbPort = context.expand( '${DB_Port}' )
def dbName = context.expand( '${DB_Name}' )
def dbUser = context.expand( '${DB_Username}' )
def dbPass = context.expand( '${DB_Password}' )
def con = Sql.newInstance("jdbc:sqlserver://'$dbServer':1433;" + "databaseName=" + dbName, dbUser, dbPass, 'com.microsoft.sqlserver.jdbc.SQLServerDriver')

1 个答案:

答案 0 :(得分:1)

不确定为什么您将$dbServer地址放在引号中,它应该是

def con = Sql.newInstance("jdbc:sqlserver://$dbServer:1433;" + "databaseName=" + dbName, dbUser, dbPass, 'com.microsoft.sqlserver.jdbc.SQLServerDriver')

或者(模仿所有的东西,而不仅仅是服务器)

def con = Sql.newInstance("jdbc:sqlserver://$dbServer:1433;databaseName=$dbName", dbUser, dbPass, 'com.microsoft.sqlserver.jdbc.SQLServerDriver')