4

Google Cloud Spanner Java SDK を使用して、クエリの IN 部分に指定されたパラメータにバインドすることはできますか?

例えば

List<String> names = new ArrayList<String>();
names.add("Alice");
names.add("Bob");
String sql = "SELECT * FROM people WHERE name IN (@names)";
Statement statement = Statement
                .newBuilder(sql)
                .bind("names").to(names)
                .build();

toStringArray を使用して名前をバインドすると、エラーになります。そして、次のように設定した場合:

names = "'Alice','Bob'";

次に、生成された SQL は次のとおりです。

SELECT * FROM people WHERE name IN ("'Alice','Bob'")
  • 余分な引用に注意してください。インジェクト攻撃を回避するために %s 文字列置換なしでこれを行う方法について何か考えはありますか?
4

1 に答える 1