我在尝试更新ResultSet时遇到问题。 我正在通过JDBC查询数据库,并找回不是CONCUR_UPDATABLE的结果集。 我需要在指定的列中将'_'替换为''。我怎么能这样做?如何更新JDBC只读结果集的行
String value = derivedResult.getString(column).replace("_", " ");
derivedResult.updateString(column, value);
derivedResult.updateRow();
这对Updatable很好,但如果它是ResultSet.CONCUR_READ_ONLY呢?
编辑:
这将是一个JDBC驱动程序,它调用另一个JDBC驱动,我的问题是,我需要更换的ResultSet的内容,即使它仅仅是前进,还是只读。如果我设置scroll_insensitive和updatable,这没有问题,但有JDBC驱动程序与只向前结果集一起工作。
解决方案:
- 我应该尝试移动的结果,一个内存数据库和替换的内容在那里。
- 我是否应该实现像所有其他类一样行为的结果集:如果需要,调用底层驱动程序函数并进行修改。
我不想使用resulst之后进行更新或插入。基本上这将在选择的查询中完成。
什么是数据库,也许更重要的是什么是查询? – dkateros 2013-03-06 13:00:17
你是如何创建Statement或PreparedStatement的;这与ResultSet的创建方式有关。 – 2013-03-06 13:03:26
db可能会有所不同,因为这将用于使用其他jdbc驱动程序的JDBC驱动程序。由于查询正在改变,列名称包含有关其内容的信息,从那里我知道修改内容。 我创建了一个Statement,PreparedStatement类,它为Statement/PreparedStatement生成底层的JDBC,并从那里获取结果。 – 2013-03-06 13:05:57