【问题标题】:Scrollable ResultSet JDBC Postgresql可滚动结果集 JDBC Postgresql
【发布时间】:2011-05-14 15:46:46
【问题描述】:

当我在 java 中创建这样一个准备好的语句时(使用 JDBC):

pStmt = conn.prepareStatement(qry);

一切正常。但是,当我想要一个可滚动的结果集并使用它时:

pStmt = conn.prepareStatement(qry,ResultSet.TYPE_SCROLL_INSENSITIVE);

我收到语法错误:

org.postgresql.util.PSQLException: ERROR: syntax error at or near "RETURNING"

我什至没有在我的查询中使用 RETURNING。

有什么想法吗?

任何帮助将不胜感激。谢谢

更新: 如果我使用它似乎可以工作:

pStmt = db.prepareStatement(qry,ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);

敏感和不敏感有什么区别?

谢谢

【问题讨论】:

  • 您可以发布查询吗?如果是这样,请这样做。

标签: java database postgresql jdbc resultset


【解决方案1】:

prepareStatement 的第二个参数应该是 Statement.RETURN_GENERATED_KEYS 或 Statement.NO_GENERATED_KEYS 之一。

我猜你想用

PreparedStatement prepareStatement(String sql,
                                   int resultSetType,
                                   int resultSetConcurrency)

【讨论】:

  • 啊,最好的方法重载:)
【解决方案2】:

ResultSet.TYPE_SCROLL_INSENSITIVE :这假定结果集不会“感知”执行查询后发生的数据库更改。

ResultSet.TYPE_SCROLL_SENSITIVE :获取执行查询后数据库中发生的更改

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-21
    • 2011-01-31
    • 2014-08-24
    相关资源
    最近更新 更多