如何在 jdbc postgresql 准备语句中多次使用相同的值



有没有办法在带有 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"

据我所知,普通 JDBC 不支持命名查询参数。您可以创建一个小函数来将值放在所有位置。否则,您正在考虑使用更重的东西,例如Spring或JPA。

最新更新