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 la
colonne 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