Изглежда, че mysql хвърля код за грешка 1062 за дублиран първичен ключ. Можете да проверите кода за грешка за вашето 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
}
}
Обърнете внимание, че този подход не е кръстосан доставчик на бази данни, тъй като различните доставчици може да имат различни кодове за грешки за дублиран PK.