2016-03-23 6 views
0

私はそれを検索しようとしましたが、結果に満足しませんでした。私が直面している問題は、ResultSetName.insertRow()を使用して行を挿入すると、レコードがデータベーステーブルに正常に追加されますが、結果セットに反映されません。つまり、結果セットにはinsertRow()を使用して追加されたレコードが表示されません。 私の結果セットはResultSet.TYPE_SCROLL_SENSITIVEResultSet.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:偽

これは奇妙ですが、それは、新しいバージョンのおかげで今の私のために働い。

+1

JDBC実装では、変更が結果セットに反映されないようにすることができます。 ['DatabaseMetaData.ownInsertsAreVisible'](http://docs.oracle.com/javase/8/docs/api/java/sql/DatabaseMetaData.html#ownInsertsAreVisible-int-)は何を返しますか? –

+0

_ "Oracle DBMS and JDBC7 version。" _は有効なバージョン情報ではありません。オラクルのバージョンと使用しているドライバのバージョンを投稿してください。 Thanks Mark。 –

+0

私はnetbeansでインストールされた2台のPCを持っていて、両方ともDatabaseMetaData.ownInsertsAreVisible()に対して 'false'を返しています。しかし、あるPCでは、結果セットの変更を反映することができ、他のものは同じ結果を得ることができませんでした。 – Rambo772

答えて

0

私の他のPCは、JDBCドライバ12.1.0.2.0を使用し、それが結果set.Howeverに挿入された行を反映している、以下の結果が混乱、

コードスニペットを作成する:

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:偽

これは変ですが、新しいバージョンのおかげで今私のために働いています。