我试着搜索它,但对结果不满意。基本上,我面临的问题是,当我使用ResultSetName.insertRow()
插入行时,记录被成功添加到数据库表中,但它没有反映在我的ResultSet中,这意味着我的ResultSet没有显示使用insertRow()
添加的记录。我的resultSet是ResultSet.TYPE_SCROLL_SENSITIVE
和ResultSet.CONCUR_UPDATABLE
。我正在使用
DBMS版本:Oracle Database 12c Release 12.1.0.2.0 64位
JDBC版本:JDBC驱动程序版本为12.1.0.1.0
代码片段:
rs.moveToInsertRow();
rs.updateString("COLUMNNAME1","QWERTY");
rs.updateString("COLUMNNAME2","QWERTY DATA");
rs.insertRow();
解决方案:
我的另一台电脑使用JDBC驱动程序12.1.0.2.0,它将插入的行反映到结果集中。然而,以下结果造成了混乱,
代码片段:
DatabaseMetaData met = conn.getMetaData();
if(met.ownInsertsAreVisible(ResultSet.TYPE_SCROLL_SENSITIVE)) {
System.out.println("ownInsertsAreVisible : true");
}
else {
System.out.println("ownInsertsAreVisible : false");
}
if(met.insertsAreDetected(ResultSet.TYPE_SCROLL_SENSITIVE)) {
System.out.println("insertsAreDetected : true");
}
else {
System.out.println("insertsAreDetected : false");
}
输出:
ownInsertsAreVisible:false
insertsAreDetected:错误
这很奇怪,但它现在对我的新版本工作,谢谢。
我的另一台电脑使用JDBC驱动程序112.1.0.2.0,它将插入的行反映到结果集中。然而,以下结果造成了混乱,
代码片段:
DatabaseMetaData met = conn.getMetaData();
if(met.ownInsertsAreVisible(ResultSet.TYPE_SCROLL_SENSITIVE)) {
System.out.println("ownInsertsAreVisible : true");
}
else {
System.out.println("ownInsertsAreVisible : false");
}
if(met.insertsAreDetected(ResultSet.TYPE_SCROLL_SENSITIVE)) {
System.out.println("insertsAreDetected : true");
}
else {
System.out.println("insertsAreDetected : false");
}
输出:
ownInsertsAreVisible:false
insertsAreDetected:false
这很奇怪,但它现在对我的新版本有效,谢谢。