我在 Groovy 中有一个有趣的问题。希望可以有人帮帮我。
基本上我使用的是 Groovy Sql。我需要在不同的数据库中选择多个表。我的第二个查询取决于其他查询,例如:"select * from table1-in-db1 where key = ${result-of-other-query1}
. 如果我在函数中对其进行硬编码,Groovy 可以正常工作。但是,我的问题是 sql 是在 xml 文件中定义的,并且在我检索后作为字符串传递到函数中。它不再与内联变量交互,即使我确实result-of-other-query1
在范围内调用了一个变量。
这是一段 sudo 代码:
doQuery(String squery, String tquery) {
//query db1.
//squery = "select key1 from table1"
db1.rows(squery).each {row->
//query db2.
//tquery ="select * where myKey ='${row.key1}'"
println tquery
tdb.rows(tquery).each { row1 ->
.... // get error here, coz groovy did not replace ${row.key1}
}
}
}
有什么方法可以告诉 Groovy 替换内联变量,即使它是作为字符串传入的?
非常感谢您提前提供的帮助