可滚动的ResultSet JDBC Postgresql

时间:2010-11-23 18:41:35

标签: java database postgresql jdbc resultset

当我在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);

SENSITIVE和INSENSITIVE之间有什么区别?

由于

2 个答案:

答案 0 :(得分:4)

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

我想你想用

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

答案 1 :(得分:0)

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

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