我在尝试更新ResultSet时遇到了问题。 我通过JDBC查询数据库,并获取不是CONCUR_UPDATABLE的结果集。 我需要在指定的列中将'_'替换为''。我怎么能这样做?
String value = derivedResult.getString(column).replace("_", " ");
derivedResult.updateString(column, value);
derivedResult.updateRow();
这在Updatable上运行正常,但是如果它是ResultSet.CONCUR_READ_ONLY呢?
修改
这将是一个JDBC驱动程序,它调用另一个JDBC驱动程序,我的问题是我需要替换ResultSet的内容,即使它只是前向或只读。如果我设置scroll_insensitive和可更新,则没有问题,但有一些JDBC驱动程序只能使用前向结果集。
解决方案:
我不想在之后使用结果进行更新或插入。基本上这将在选择查询上完成。
答案 0 :(得分:1)
根据我的经验,更新结果集只能用于简单查询(在单个表上选择语句)。但是,根据数据库的不同,这可能会发生变化。我首先会查阅数据库文档。
即使你创建了自己的可更新的结果集,为什么你认为数据库数据会改变?很可能(几乎可以肯定)更新机制使用的代码不是公共的,只存在于您使用的jdbc驱动程序的结果集实例实现类型中。
我希望上述内容有道理。