Проблема в том, что я не могу понять, как вставить нулевое значение. Столбец - дата, и если он пуст, он просто добавляет текущую дату в db по умолчанию, но я не знаю, как оставить его пустым или нулевым, если пользователь не указал пользовательскую дату.
statement.executeUpdate("insert into table values(null, 100, 'text')");
Это запрос. Я попытался пропустить первое значение, вставить нуль, вставить пустую строку, значение 0. ничто, кажется, не делает трюк.
Используйте эту форму, где вы указываете, какие столбцы вы собираетесь устанавливать:
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
В твоем случае:
insert into table (col2, col3) values (100, 'text')
(где, конечно, col2 и col3 - это имена столбцов вашей таблицы)
Изменение: для столбца даты (col1), вероятно, потребуется ограничение "Default null", чтобы это работало так, как вы планировали.
в столбце column_date снимите флажок NOT NULL, затем вы можете вставить NULL VALUES
простой код "INSERT INTO table_name
(field_name
) VALUES (NULL)
попробуйте приведенный ниже код
String sql = "INSERT INTO temp(val) VALUES (?)";
PreparedStatement st = con.prepareStatement(sql);
if (/* int value is not null */) {
st.setInt(1, value);
} else {
set.setNull(1, Types.INTEGER);
}
count = st.executeUpdate();