J'utilise Java (JDBC) pour interagir avec une base de données MySQL. J'ai une table avec un index primaire qui est incrémentation automatique. Lorsque j'insère une ligne, j'ai besoin d'obtenir l'index qu'il vient de recevoir. Comment puis-je faire ça? P>
3 Réponses :
de: http://dev.mysql.com/doc/refman/5.0/fr/connector-j-usagenotes-basic.html#connector-j-usagenotes-last-inser-id << Pré> xxx pré> p>
Alternativement, en utilisant le ressort JDBC, il ressemblerait à:
Map<String, Object> map = new HashMap<String, Object>(); map.put("column1", "test"); map.put("column2", Boolean.TRUE); SimpleJdbcInsert insert = new SimpleJdbcInsert(template).withTableName("table").usingGeneratedKeyColumns("id"); int id = insert.executeAndReturnKey(map).intValue();
Merci à John Boker pour son excellente réponse.
Si vous souhaitez utiliser un retour_generated_keys code>, mais vous devez appliquer les commandes différemment: p>
retour_generated_keys code> param dans la préparation
() code>
fonction. li>
énoncé.executeUpdate () code> mais de
relève.getGeneratedKeys () code>. li>
ol> p>
Comment pouvez-vous utiliser cet index pour rechercher plus de laster plus rapide?
@David: Que voulez-vous dire? Une clé primaire est toujours un index et vous aidera donc toujours à rechercher plus rapidement, si vous interrogez l'index. Demandez une question distincte si vous voulez plus d'explications :)
Je pensais qu'une clé primaire pourrait être indexée et non un indice en soi. Je crois que c'est parfaitement valide (bien que l'on ne soit généralement pas recommandé) d'utiliser un Varchar (60) comme clé primaire. Il serait alors intéressant de récupérer l'indice de la clé primaire qui a été inséré et non la valeur elle-même. Plus spécifiquement, il serait utile d'obtenir une sorte de position sur le disque sur lequel le dernier enregistrement a été enregistré afin que l'on puisse la modifier rapidement s'il s'avère qu'il doit être modifié (par exemple en raison de l'utilisateur en cliquant sur un bouton d'annulation) . J'espère que je ne suis pas détourner ce standing maintenant ...