Montre comment obtenir la valeur Auto_Increment lors de l'insertion d'un enregistrement dans une base de données à partir du code Java à l'aide de JDBC.
Vous pouvez obtenir la dernière valeur numérotée par SELECT LAST_INSERT_ID (), mais vous pouvez l'utiliser lorsque vous voulez l'obtenir comme valeur de retour.
Tout d'abord, créez la base de données / table suivante. --Nom de la base de données: testdb --Nom de la table: test
Ici, préparez la colonne idet lacolonne de nom de type Char`, qui sont les clés primaires avec ʻAuto_Increment défini dans la table de test.
Le SQL pour créer la table est le suivant.
CREATE TABLE test(
id INT NOT NULL AUTO_INCREMENT,
name CHAR(30) NOT NULL,
PRIMARY KEY (id)
);
Si vous vérifiez les informations de colonne de la table (SHOW COLUMNS FROM table name), vous pouvez voir que ʻAuto_Increment est défini dans la colonne id de la clé primaire`.
| Field | Type | Null | Key | Default | Extra |
|---|---|---|---|---|---|
| id | int | NO | PRI | NULL | auto_increment |
| name | char | NO | NULL |
Tout d'abord, la source Java est affichée.
Test.java
public class Test {
public static void main(String[] args) {
int autoIncrementKey = 0;
try {
//Charge du conducteur
Class.forName("com.mysql.jdbc.Driver");
//Connectez-vous à MySQL
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/testdb?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC", "user", "password");
String sql = "insert into test(name) values (?)";
//Génération de déclaration
//RETOUR ici_GENERATED_Définir les clés
PreparedStatement stmt = con.prepareStatement(sql, java.sql.Statement.RETURN_GENERATED_KEYS);
stmt.setString(1, "XXX");
stmt.executeUpdate();
// getGeneratedKeys()Par Auto_Obtenez l'ID incrémenté
ResultSet res = stmt.getGeneratedKeys();
if(res.next()){
autoIncrementKey = res.getInt(1);
}
System.out.println(autoIncrementKey);
res.close();
stmt.close();
con.close();
} catch (Exception e){
System.out.println(e);
}
}
}
Lors de la génération d'un PreparedStatement, définissez le second argument sur java.sql.Statement.RETURN_GENERATED_KEYS.
Ensuite, après avoir exécuté l'instruction Insert avec stmt.exceuteUpdate (), en exécutant stmt.getGeneratedKeys (), l'identifiant numéroté automatiquement peut être obtenu.
Il existe peu de possibilités d'utiliser Java et SQL bruts, mais pour rappel.
Recommended Posts