Lors de l'utilisation de Postgresql JDBC, Insérer une ligne avec l'instruction executeUpdate mais le résultat était zéro. J'ai trouvé que les données ont été insérées. Le document API indique que la méthode executeUpdate renvoie le nombre de lignes affecté.Lors de l'utilisation de Postgresql JDBC, instruction INSERT qui entraînera l'insertion de 0 lignes
mSqlInsertEventHist = "INSERT INTO " + DatabaseTables.EVENT_HIST +
" (event_id, mntr_id, mntr_zone, mntr_name, mntr_class_name, mntr_class_sub_type, host_name, ip_addr, " +
" metric_id, metric_name, perf_name, object_name, event_type, event_master_id, " +
" event_name, event_level, event_msg, threshold, event_recv_day, event_reco_dt, event_recv_dt," +
" event_saved_dt, blackout_yn, msg_filter_yn) " +
" VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, " + " now() " + ", ?, ?) ";
mPstmtInstEvtHist.setLong(1, eventid);
mPstmtInstEvtHist.setInt(2, mntrid);
mPstmtInstEvtHist.setString(3, mntrZone);
mPstmtInstEvtHist.setString(4, mntrname);
mPstmtInstEvtHist.setString(5, mntrClsName);
mPstmtInstEvtHist.setString(6, mntrClsSubType);
mPstmtInstEvtHist.setString(7, hostname);
mPstmtInstEvtHist.setString(8, ipAddr);
mPstmtInstEvtHist.setInt(9, Integer.parseInt((String)dataobj.get(MQConstants.METRIC_ID)));
mPstmtInstEvtHist.setString(10, metricname);
mPstmtInstEvtHist.setString(11, perfname);
mPstmtInstEvtHist.setString(12, objectname);
mPstmtInstEvtHist.setString(13, dataType);
mPstmtInstEvtHist.setInt(14,
Integer.parseInt((String)dataobj.get(MQConstants.EVENT_MASTER_ID)));
mPstmtInstEvtHist.setString(15, eventname);
mPstmtInstEvtHist.setString(16, eventlvl);
mPstmtInstEvtHist.setString(17, evtMsg);
mPstmtInstEvtHist.setObject(18, jsonObj);
mPstmtInstEvtHist.setInt(19,
Integer.parseInt((String)dataobj.get(MQConstants.EVENT_RECV_DAY)));
mPstmtInstEvtHist.setTimestamp(20, colTs);
mPstmtInstEvtHist.setTimestamp(21, rcvTs);
mPstmtInstEvtHist.setString(22,
(String)dataobj.get(MQConstants.BLACKOUT_YN));
mPstmtInstEvtHist.setString(23,
(String)dataobj.get(MQConstants.MSG_FILTER_YN));
rtn = mPstmtInstEvtHist.executeUpdate();
if (rtn == 1 ) {//NOPMD
Debug.getLogger().trace("Inserted Event into {} => {}, {}, {} "
,DatabaseTables.EVENT_HIST , mntrid, eventname, eventlvl);
} else {
Debug.getLogger().warn("Failed to insert Event into {} => {}",
DatabaseTables.EVENT_HIST, Debug.getString(jobj));
}
Je n'ai aucune idée de ce que vous demandez. S'il vous plaît nous montrer du code, et des données qui expliquent ce qui se passe. –
La ligne est insérée mais enregistre toujours Debug.getLogger(). Warn ("Impossible d'insérer l'événement dans {} => {}", DatabaseTables.EVENT_HIST, Debug.getString (jobj)); –
Où est l'instruction 'INSERT' actuelle? –