Il semble que vous deviez définir useAffectedRows
manuellement dans les propriétés du pilote.
J'ai eu la solution après quelques recherches sur Google. Vous pouvez consulter ce bogue MySql pour ce INSERT ON DUPLICATE KEY UPDATE return 0 if no change in Exécuter la mise à jour JDBC
Également dans la discussion, il est indiqué qu'ils l'ont publié en 5.1.7
EDIT pour votre deuxième question :
useAffectedRows :
Par défaut :faux
Depuis la version :5.1.7
Référence useAffectedRows dans JDBC Connector-j