私はそれを検索しようとしましたが、結果に満足しませんでした。私が直面している問題は、ResultSetName.insertRow()
を使用して行を挿入すると、レコードがデータベーステーブルに正常に追加されますが、結果セットに反映されません。つまり、結果セットにはinsertRow()
を使用して追加されたレコードが表示されません。 私の結果セットはResultSet.TYPE_SCROLL_SENSITIVE
とResultSet.CONCUR_UPDATABLE
です。 私はResultSetはinsertRowの後に更新リストを再選択しません
DBMSのバージョン使用しています:Oracleデータベース12cをリリース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();
SOLUTION:
私の他のPCは、JDBCドライバ12.1.0.2.0を使用し、それが結果set.Howeverに挿入された行を反映され、その結果、次の210混乱を作成し、
コードスニペット:
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");
}
OUTPUT。
ownInsertsAreVisible:偽
insertsAreDetected:偽
これは奇妙ですが、それは、新しいバージョンのおかげで今の私のために働い。
JDBC実装では、変更が結果セットに反映されないようにすることができます。 ['DatabaseMetaData.ownInsertsAreVisible'](http://docs.oracle.com/javase/8/docs/api/java/sql/DatabaseMetaData.html#ownInsertsAreVisible-int-)は何を返しますか? –
_ "Oracle DBMS and JDBC7 version。" _は有効なバージョン情報ではありません。オラクルのバージョンと使用しているドライバのバージョンを投稿してください。 Thanks Mark。 –
私はnetbeansでインストールされた2台のPCを持っていて、両方ともDatabaseMetaData.ownInsertsAreVisible()に対して 'false'を返しています。しかし、あるPCでは、結果セットの変更を反映することができ、他のものは同じ結果を得ることができませんでした。 – Rambo772