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

标签 java postgresql jdbc

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

关于java - 如何在 jdbc postgresql 准备语句中多次使用相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13483889/

相关文章:

java - 如何连续运行Java jar?

java - spring事务管理器可以管理2个事务吗?

java - 等待同步回调?

java - 使用使用 WHERE 子句选择的数据加载 JCombobox

java - 检索数据时保证缓存命中

java - 在java spring boot中减少另一个表中的列的值

ruby-on-rails - 普通索引也可以通过创建唯一索引来工作吗?

php - CDbCriteria 参数绑定(bind)

postgresql - Powershell PostrgreSQL 查询仅返回字段计数而不是值

java - jdbc 为什么javax.sql.PooledConnection 不是继承自java.sql.Connection