我试图通过我的groovy代码连接到我的公司Microsoft sql。使用此代码:
String conn= "jdbc:sqlserver://;servername="+url+";databaseName=central;user=***qa***;password=***mypassword***;"
def sqlConnection = Sql.newInstance(conn,username,password,"com.microsoft.sqlserver.jdbc.SQLServerDriver")
这导致出现错误:
mgroovy.lang.MissingPropertyException:无此类属性:connection 类别:sqlKeyWords.checking [0; 39m [31m at sqlKeyWords.checking.connectDB(checking.groovy:60)[0; 39m [31m at sqlKeyWords.checking.invokeMethod(checking.groovy)[0; 39m [31m at com.kms.katalon.core.main.CustomKeywordDelegatingMetaClass.invokeStaticMethod(CustomKeywordDelegatingMetaClass.java:49)[0; 39m [31m at CreateOrg.run(CreateOrg:47)[0; 39m [31m at com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:194)[0; 39m [在31m com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:119)[0; 39m [在31m com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:331)[0; 39m [在31m com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:322)[0; 39m [在31m com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:301)[0; 39m [在31m com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:293)[0; 39m [在31m com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:227)[0; 39m [在31m com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:114)[0; 39m [在31m com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:105)[0; 39m [在31m com.kms.katalon.core.main.TestCaseMain $ runTestCase $ 0.call(未知 来源)[0; 39m [31m at TempTestCase1555589132729.run(TempTestCase1555589132729.groovy:21)
此错误的描述性不强,因此这是我在调试中发现的错误:
驱动程序无法通过以下方式与SQL Server建立安全连接 使用安全套接字层(SSL)加密
我后来在http://docs.groovy-lang.org/latest/html/api/groovy/sql/Sql.html中尝试了此操作:
def db = [url:'jdbc:sqlserver:'+url+':central', user:username, password:password, driver:'com.microsoft.sqlserver.jdbc.SQLServerDriver']
def sql = Sql.newInstance(db.url, db.user, db.password, db.driver)
结果是:
找不到适用于jdbc:sqlserver:aaa-sql-qa.database.windows.bbb:dbName
的驱动程序
我看到了很多答案,其中大多数回答是使用服务器的防火墙,但是我能够通过我的python代码或通过SSMS连接到DB。另外,我没有使用防火墙的能力。我在this答案中看到使用jTDS,但是我无法继续处理其他问题(当然它也没有连接)
答案 0 :(得分:1)
http://docs.groovy-lang.org/latest/html/api/groovy/sql/Sql.html
conn变量是一个简单的字符串,因此实际上您在初始化newInstance时不会发送url。相反,您发送整个字符串。尝试仅发送网址。
答案 1 :(得分:0)
我不知道为什么,但是在连接调试的线路上运行调试时,出现了此错误。这是我在自动化工具Katalon(使用groovy)中发生的
(当然b / c不能正常工作,我正尝试在其中使用调试功能)