Подтвердить что ты не робот

Вставить строку в базу данных с помощью PreparedStatement

Я хочу вставить строку в таблицу, используя PreparedStatement. Таблица получила 3 ​​столбца (int, String, String). Дело в том, что столбец int является AUTO_INCREMENT, поэтому я хочу оставить эту переменную пустой и позволить базе данных выполнить это задание (это id). Не выяснили, как это сделать, хотя!

Это база данных MySQL.

4b9b3361

Ответ 1

Это относительно просто, просто оставьте столбец автоинкремента из списка столбцов:

insert into mytbl(str1, str2) values (?, ?)

Подготовьте инструкцию, установите два параметра и выполните в режиме без запроса.

Ответ 2

Просто укажите записи String в строке запроса sql, и база данных заполнит поле 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();

Ответ 3

Если поле уже автоинкремента, достаточно заполнить только два других поля. Вот пример

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) {

}