我有一个关于在 JDBC SQL 查询中使用字符串的问题。这里有两个例子,我希望它们都能工作,但它们没有。
工作版...
tabl = "Action"
query = "SHOW FULL COLUMNS FROM `Action`;"
println " "+ query
dbConnection.eachRow( query ){
在错误变体中:
tabl = "Action"
query = "SHOW FULL COLUMNS FROM `${tabl}`;"
println " "+ query
dbConnection.eachRow( query ){
该错误作为 SQL 语法错误返回。如您所见,这些语句在文本上是相同的。
输出显示语句,然后是错误:
SHOW FULL COLUMNS FROM `Action`;
May 20, 2013 10:52:01 AM groovy.sql.Sql eachRow
WARNING: Failed to execute: SHOW FULL COLUMNS FROM `?`; because:
Parameter index out of range (1 > number of parameters, which is 0).
May 20, 2013 10:52:01 AM groovy.sql.Sql eachRow
我认为这只是 Groovy 试图寻找罪魁祸首。当我将文字字符串提供给 JDBC 连接时,它适用于“操作”表。
我希望有人可以解释错误并提供修复。
对于那些阅读,我发现这个选项是一种解决方法:
query = "SHOW FULL COLUMNS FROM `"+ tabl.toString() +"`;"
虽然可能有一个不太冗长的选项,但使用“+”;对我来说,感觉好像使用 ${tabl} 应该有效。
提前致谢,