2012-11-20 28 views
2

有没有一种方法可以在jdbc postgresql驱动程序的准备语句中多次使用相同的变量?如何在jdbc postgresql prepared语句中多次使用相同的值

例如,我想用下面的语句,但对每个问号的值相同:

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" 
+0

存储过程? – djechlin

+0

该主题已经在[这里] [1]讨论过了。复制? [1]:http://stackoverflow.com/questions/7673599/jdbc-preparedstatement-using-the-same-argument-is-it-possible –

回答

1

据我所知,普通JDBC不支持命名查询参数。你可以做一个小函数来把值放在所有的地方。否则,你正在寻找使用像Spring或JPA这样重的东西。

相关问题