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