You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

更新ResultSet后调用getInt仍获旧值,如何获取本地更新值?

解决ResultSet更新后get方法仍取旧值的问题

当你调用updateInt修改ResultSet的列值后,默认的getInt方法会读取数据库原始快照数据,而非本地更新后的缓存值,所以会拿到旧数据。要获取本地更新后的值,有两种可行方式:

方式一:使用带GET_CURRENT_VALUE参数的get方法重载版本

直接调用getInt的重载方法,传入ResultSet.GET_CURRENT_VALUE参数,就能读取本地缓冲区里的更新后值:

myresultset.updateInt("qty", newqty);
// 获取本地更新后的值
int updatedQty = myresultset.getInt("qty", ResultSet.GET_CURRENT_VALUE);

方式二:提交更新到数据库后再读取

如果不需要保留本地未提交的修改,可先调用updateRow()将更新同步到数据库,之后普通的getInt就能拿到新值:

myresultset.updateInt("qty", newqty);
// 将更新提交到数据库
myresultset.updateRow();
// 此时可获取到数据库中的新值
int updatedQty = myresultset.getInt("qty");

注意事项

确保你的ResultSet是可更新的,创建Statement时必须指定对应的参数:

Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet myresultset = stmt.executeQuery("SELECT qty FROM your_table WHERE ...");

内容的提问来源于stack exchange,提问作者Allexj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 07:36:19