私は、いくつかの式を格納するString
Java の変数 (たとえば、 ) を持っています。これは、ユーザー入力からの完全に動的な文字列であり、いくつあるかわかりません。str
GString
"SELECT ${path} path FROM dual"
${}
そして、現在のバインディングを使用しsql.rows()
て評価されたものでは使用したくありません。${path}
PreparedStatement
問題は:
- 何らかの形で変換
str
しないと、GString
がスローされます。しかし、それは安全ではなく、Groovy は警告を生成します (引用符を使用して削除する必要があります)。SQLException
PreparedStatement
'${path}'
PreparedStatement
- この方法に変換する
str
とGString
:sql.rows("${str}")
、Groovy は完全に間違った準備済みステートメントを使用しますが"?"
、もちろん、それは機能しません。ステートメントが必要です"SELECT ? path FROM dual"
。
問題は、 ?でラップせずにどうやって取得できるGString
かです。あるいは、 (only , not )の最初のレベルだけを評価するにはどうすればよいでしょうか? または、この問題を別の方法で解決するにはどうすればよいですか?String
"${}"
GString
str
path
ありがとうございました。