Bonjour ,
Je cherche l'equivalent de la fonction PHP "mysql_insert_id() " qui permet de recupérer le dernier id insérer dans une table donnée .
Merci.
Bonjour ,
Je cherche l'equivalent de la fonction PHP "mysql_insert_id() " qui permet de recupérer le dernier id insérer dans une table donnée .
Merci.
tu utilise un ResultSet et dans ton while tu lance un ResultSet.last().![]()
et bien dans ta classe dao tu fait une fonction qui te renvoit le dernier élément de ta table
Exemple :
que tu stocke dans un int et tu le renvoit c'est tout
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 int cpt = 0; ResultSet rs = null; PreparedStatement pst = null; Job job = null; String sql = "SELECT * FROM Job ;"; try { pst = this.connect.prepareStatement(sql); rs = pst.executeQuery(); if(rs.last()){ job = new Job(); job.setIdJob(rs.getInt(1)); cpt = job.getIdJob(); } } catch (SQLException e) { e.printStackTrace(); } return cpt;![]()
Pense à Résolu
Bonjour,
@seb759
Faire un select * pour ne récupérer qu'un champ prend plus de memoire que de faire directement un select nomChamp.
C'est mieux de récupérer l'id directement au moment de l'insert.
Regarde le java doc de Statement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 //method 1 PreparedStatement pst = connection.prepareStatement("insert into ... ?, ?"); pst.setString(1,"champ"); .... pst.executeUpdate(); ResultSet rs = pst.getGeneratedKeys(); //method 2 PreparedStatement pst = connection.prepareStatement(); int id= pst.executeUpdate("insert into ...",Statement.RETURN_GENERATED_KEYS );
A+.
As-tu au moins les remarques de tchize_ et moi pour utiliser la solution de seb759?
Partager