On dirait que mysql lance le code d'erreur 1062 pour la clé primaire en double. Vous pouvez vérifier le code d'erreur de votre exception sql :
public static final int MYSQL_DUPLICATE_PK = 1062;
try{
//code that throws sql exception
} catch(SQLException e){
if(e.getErrorCode() == MYSQL_DUPLICATE_PK ){
//duplicate primary key
}
}
Notez que cette approche n'est pas multifournisseur de bases de données, car différents fournisseurs peuvent avoir des codes d'erreur différents pour les PK en double.