JDBC で prepareStatement を使用してクエリを実行しています。実際の数字の代わりに「数字のウォルドカード」を挿入することがあります。
次のようなクエリを考えてみましょう。 Domains: a int, b text;
pStatement =
dbConnection.prepareStatement("SELECT * FROM R1 WHERE a LIKE ? AND b LIKE ?");
時々私はしたいと思います:
pStatement.setInt(1, 10);
pStatement.setString(2,"%");
pStatement.exequteQuery();
ワイルドカードは文字列なので問題ありません。
その他の場合:
pStatement.setInt(1, ANY_INT_SHOULD_BE_VALID);
pStatement.setString(2, "Hello");
pStatement.exequteQuery();
それはうまくいきません。クエリを変更して「a <> 0」などを使用することもできますが、これには追加のコードが必要で、prepareStatement の使用が不要になります。
実際のクエリを変更せずに、挿入された値のみを変更してこれを解決する方法はありますか?