gpt4 book ai didi

java - 更新结果集后更新数据库

转载 作者:行者123 更新时间:2023-11-29 03:18:10 26 4
gpt4 key购买 nike

我有下面的代码从数据库中获取数据并更新它。然而,结果集正在更新,但我没有看到数据库中的更改。即使在我说 commit() 之后,数据库也没有得到更新。我在这里缺少什么?

  Connection connect = ConnectionManager.getInstance().getConnection();
Statement st = connect.createStatement();

st.execute("Select * from ...");
ResultSet rs = st.getResultSet();
ResultSetMetaData md = rs.getMetaData() ;
rs.absolute(1);
rs.updateObject("StepName","ABCD" );

connect.commit();
//connect.close();

编辑:

现在,我有以下方法,但我得到了指示的错误。

            rs.updateString("StepName", "ABCD");
rs.updateRow();
//rs.updateObject("StepName","ABCD" );

错误:com.jnetdirect.jsql.u: sp_cursor: 提供的游标标识符值 (0) 无效。

好的,我现在可以使用了。以下是我必须改变的方式。工作解决方案:

Connection connect = ConnectionManager.getInstance().getConnection();
Statement st = connect.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);

st.execute("Select * from ...");
ResultSet rs = st.getResultSet();
String queuename = "apples";
String updatedname = "bananas";

while(rs.next())
{

if(rs.getString(3).equals(queuename))
{
rs.updateString(3, updatedname );
System.out.println("updated: " + rs.getString(3));
rs.updateRow();
}else
{
System.out.println(rs.getRow() + ": " + rs.getString(3));
}
}

connect.commit();
rs.close();
connect.close();

}

最佳答案

如果您查看 updateObject 的规范:

Updates the designated column with an Object value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

rs.updateObject 本身不会更新数据库。尝试在 updateObject 之后添加对 rs.updateRow() 的调用。

关于java - 更新结果集后更新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25288764/

26 4 0
文章推荐: java - 经纬度 : Check whether a given point of LatLng is within a 5km radius of another point
文章推荐: php - 通过 laravel Mysql 使用 Distinct 和 group
文章推荐: mysql - 想要更新 mysql 字段值,如 00001、00002、00003
文章推荐: java - 我如何编写我的模式,以便将序列中的元素映射到单独的属性,而不是 JAXB 生成的类中的一个 List