当我在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之间有什么区别?
由于
答案 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:获取执行查询后数据库中发生的更改