Database Mysql,版本5.5.17.JDBC驱动程序版本5.1.28 代码与Gstring:
def p = "id"
def row = sql.firstRow("select $p from Model")
print row
结果:
[id:id] **!**
没有Gstring的代码:
def row = sql.firstRow("select id from Model")
print row
结果:
[id:1]
为什么?
答案 0 :(得分:2)
Groovy正在转义p
,因为它将其视为Sql参数
尝试使用Sql.expand
,如下所示:
def p = 'id'
def row = sql.firstRow( "select ${Sql.expand( p )} from Model" )