此问题的基本代码是:
TYPE_SCROLL_SENSITIVE
当我更改字段并更新它时,然后移动到另一条记录并返回到我更改的字段,它将恢复到我进行更改之前的状态。如果我关闭并重新启动应用程序,则会反映更改。它似乎将更改提交到底层数据库,但不是将结果设置为自己。我尝试了不同的结果集参数,但CONCUR_UPDATABLE
和q = session.query(Website.id).\
join(Website.category_id).\
group_by(Category.id).\
having(func.count(Website.url) > 0)
应该是合适的。
当我点击NEXT或PREVIOUS转到另一个记录时,代码只是通过从结果集中抓取它们来设置文本字段。所以结果集只是没有保持或识别更改和结果集updateString和updateInt方法。
有人可以对此有所了解吗?
答案 0 :(得分:1)
要确定结果集是否可以看到自己的更新,请致电:
DatabaseMetaData::ownUpdatesAreVisible
。
检查JDBC规范和JDBC驱动程序的文档以获取更多详细信息。
答案 1 :(得分:0)
也许你还没有结束你的陈述。
将stmt.close()
与try catch block一起使用。
Statement stmt = null;
try {
// your code here.
stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
rs=stmt.executeQuery(SQL);
rs.updateInt("CUSTOMER_ID", newID);
rs.updateString("NAME", company);
rs.updateString("CITY", city);
rs.updateString("STATE", state);
rs.updateRow();
conn.commit(); // this connection commit() method will solve your issue
} catch (SQLException e ) {
JDBCTutorialUtilities.printSQLException(e);
} finally {
if (stmt != null) { stmt.close(); }
}
资源链接: