在insertRow之后,ResultSet不会重新选择更新列表

时间:2016-03-23 12:46:38

标签: java jdbc oracle12c

我试图搜索它但对结果不满意。基本上,我面临的问题是,当我使用ResultSetName.insertRow()插入行时,记录已成功添加到数据库表但它没有反映在我的ResultSet中,这意味着我的resultSet没有显示使用{{1}添加的记录}。 我的resultSet是insertRow()ResultSet.TYPE_SCROLL_SENSITIVE。 我正在使用

  

DBMS版本:Oracle Database 12c版本12.1.0.2.0 64位

     

JDBC版本:JDBC驱动程序版本为12.1.0.1.0

代码段:

ResultSet.CONCUR_UPDATABLE

解决方案:

我的另一台PC正在使用JDBC Driver 12.1.0.2.0,它将插入的行反映到结果集中。但是,以下结果会造成混淆,

代码段:

rs.moveToInsertRow();
rs.updateString("COLUMNNAME1","QWERTY");
rs.updateString("COLUMNNAME2","QWERTY DATA");
rs.insertRow();

输出:
ownInsertsAreVisible:false
insertsAreDetected:false

这很奇怪,但现在感谢新版本感谢。

1 个答案:

答案 0 :(得分:0)

我的另一台PC正在使用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:false

这很奇怪,但现在感谢新版本感谢。