0
我對java.sql.PreparedStatement上的ExceptionHandling有個問題。PreparedStatements上的異常處理ExecuteBatch()(不是獲取異常,而是語句本身)
我有一個PreparedStatement的:
insertTEZDETAIL = new XPreparedStatement(con, "INSERT INTO TEZDETAIL (PACKAGE_ID, LFDNR, ARCHIVTAG, PAYINF)"
+ " Values(?, ?, ? ,XMLPARSE(DOCUMENT CAST(? AS CLOB)))");
和批量添加許多語句:
insertTEZDETAIL.setInt(1, paket_id);
insertTEZDETAIL.setInt(2, Counter1);
insertTEZDETAIL.setString(3, archiv_dat);
SQLXML xmlvar = con.createSQLXML();
xmlvar.setString(gesXML.toString());
insertTEZDETAIL.setSQLXML(4, xmlvar);
insertTEZDETAIL.addBatch();
現在我執行它批次:
public static void DB2Commit()
{
try
{ insertTEZDETAIL.executeBatch();
} catch (SQLException ex)
{ for (; ex != null ; ex = ex.getNextException())
{
ex.printStackTrace();
}
try
{
con.rollback();
} catch (SQLException e) {
e.printStackTrace();
System.exit(12);
}
System.err.println("Fehler beim execute Batch");
System.exit(12);
}
}
隨着 「Forech例外循環」我得到所有異常, ,但它有一種方法來獲得本聲明的GeneratedKey的w這裏的例外是? 與RETURN_GENERATED_KEYS它不工作,可能是因爲批量? 或者,也許會得到自己的聲明? 因爲我有一個類來打印出帶有generatedKey的完整Statement,就像DB2獲得Statement一樣。
感謝答案,
弗洛裏安
謝謝您的回答得到了生成的密鑰, 用則ExecuteBatch(),它是: INT []的RowsAffected = insertTEZDETAIL.executeBatch(); ??? – user3173681
'XPrepareStatment'是你自己的課程? –
難道這是他們在談論:http://www.openoffice.org/api/docs/common/ref/com/sun/star/sdbc/XPreparedStatement.html但是我沒有看到任何'executeBatch'方法。 –