Ответ 1
Это относительно просто, просто оставьте столбец автоинкремента из списка столбцов:
insert into mytbl(str1, str2) values (?, ?)
Подготовьте инструкцию, установите два параметра и выполните в режиме без запроса.
Я хочу вставить строку в таблицу, используя PreparedStatement. Таблица получила 3 столбца (int, String, String). Дело в том, что столбец int является AUTO_INCREMENT, поэтому я хочу оставить эту переменную пустой и позволить базе данных выполнить это задание (это id). Не выяснили, как это сделать, хотя!
Это база данных MySQL.
Это относительно просто, просто оставьте столбец автоинкремента из списка столбцов:
insert into mytbl(str1, str2) values (?, ?)
Подготовьте инструкцию, установите два параметра и выполните в режиме без запроса.
Просто укажите записи 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();
Если поле уже автоинкремента, достаточно заполнить только два других поля. Вот пример
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) {
}