Je souhaite insérer une ligne dans une table à l'aide de PreparedStatement. La table a 3 colonnes (int, String, String). Le fait est que la colonne int est AUTO_INCREMENT, donc je veux laisser cette variable vide et laisser la base de données faire ce travail (c'est un id). Je n'ai pas encore trouvé comment faire ça!
C'est une base de données MySQL.
C'est relativement simple, laissez simplement la colonne d'auto-incrémentation de la liste des colonnes:
insert into mytbl(str1, str2) values (?, ?)
Préparez l'instruction, définissez les deux paramètres et exécutez-la en mode sans requête.
Fournissez simplement les entrées String dans votre chaîne de requête SQL et la base de données remplira le champ auto_increment:
String insertSQL = "INSERT INTO MyTable (StrCol1, StrCol2) VALUES (?, ?)";
PreparedStatement preparedStatement = dbConnection.prepareStatement(insertSQL);
preparedStatement.setString(1, "Val 1");
preparedStatement.setString(2, "Val 2");
preparedStatement.executeUpdate();
Si le champ est déjà incrémenté automatiquement, il suffit de remplir uniquement les deux autres champs. Voici un exemple
String sql = "INSERT INTO mytableName("
+ "fistStringColumnName,"
+ "secondStringColumnName) "
+ "VALUES(?,?)";
try (PreparedStatement pstmt = connection.prepareStatement(sql)) {
// Set the values
pstmt.setString(1, "firstString");
pstmt.setString(2, "secondString");
// Insert
pstmt.executeUpdate();
} catch (SQLException e) {
} catch (FileNotFoundException e) {
}