2

有没有办法在带有 jdbc postgresql 驱动程序的准备好的语句中多次使用相同的变量?

例如,我想使用以下语句,但每个问号具有相同的值:

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

但不是输入三遍代码,例如:

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 回答