J'aimerais avec une requête SQL à l'intérieur d'une appli java insérer un enregistrement dans une table et savoir si la mise à jour a été faite ou non.
Le problème, c'est que quand on formule une requête autre qu'1 "Select", on lève une exception de type java.sql.SQLException et que si aucune contrainte d'intégrité n'existe l'ajout, la modif ou la suppression s'effectue.
Mais, dans le cas inverse, comment savoir que l'opération demandée ne s'est pas faite puisqu'il s'agit également exception de type java.sql.SQLException ? Comment intercepter l'erreur suivante ou tout autre d'ailleurs ?
java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]Conflit entre l'instruction INSERT et la contrainte...
Merci de toutes vos contributions à ma quête d'éclaircissement.
A voir également:
Java.sql.sqlexception
Java.sql.sqlexception: index de colonne non valide - Meilleures réponses
Echec de conversion dans la représentation interne - Meilleures réponses
Pour faire une mise à jour de la table tu utilise la methode executeUpdate de l' interface Statement. Celle ci te reoturne le nombre de ligne mise a jour. Ce qui te permet de savoir si ta ligne est ajouter pour le cas d'un insert, ou combien de lignes ont été mise a jour avec un update.
Si la requete est mal construite la méthode vas lever une execption de type jva.sql.SQLException. Pour connaitre l'erreur tu peut utiliser :
ResultSet rs st.executeQuery("SELECT * FROM emp where dept 1");
while(rs.next()){ //je recupere tout le tableau
System.out.println("ID_EMP " + rs.getInt(1)+ " | NOME" + rs.getString(2)+" | DEPT=" +
rs.getInt(3));//colone 1,colone 2 qui est un string, colone 3
}
rs.absolute(3);//se positionner a la ligne 3
rs.updateString("NOME", "Nom mis à jour");//changer le nom de la ligne 3
rs.updateInt("DEPT",4);//changer le n de département
rs.updateRow();//mettre à jour la ligne
rs.beforeFirst();//revenir au début
System.out.println("énumération après mise à jour");