2

jdbc postgresqlドライバーを使用してプリペアドステートメントで同じ変数を何度も使用する方法はありますか?

たとえば、次のステートメントを使用したいのですが、各疑問符に同じ値を使用します。

PreparedStatement ps = 
    pg.prepareCall("SELECT * FROM mytable WHERE col1=? AND col2=? AND col3=?");    

ただし、次のようにコードを3回入力する代わりに:

ps.setInt(0,1);
ps.setInt(1,1);
ps.setInt(2,1);

各変数で同じ値を単純に使用する方法はありますか?pypostgresqlでの使用法に似たものを考えています。ここ$1では、各フィールドで使用するために簡単に言うことができます。

"SELECT * FROM mytable WHERE col1=$1 AND col2=$1 AND col3=$1"
4

1 に答える 1

0

私の知る限り、プレーンJDBCは名前付きクエリパラメータをサポートしていません。小さな関数を作成して、すべての場所に値を配置することができます。それ以外の場合は、SpringやJPAなどのより重いものを使用することを検討しています。

于 2012-11-20T23:25:28.923 に答える