Ввод 'Date' из JFrame в базу данных MySQL - PullRequest
0 голосов
/ 10 июня 2018

(я использую Netbeans IDE 8.2) Я делаю форму jFrame, чтобы зарегистрировать нового пользователя, который будет принимать некоторые значения от пользователя во время выполнения и вставлять их в базу данных, которую я создал в MySQL.Вот вид дизайна (игнорируйте текстовые поля в верхнем правом углу) - Design view

А вот код, который я написал с использованием JDBC- Code

Теперь проблема Iсталкиваюсь с вводом даты рождения.Это показывает эту ошибку - The error

И это база данных и таблица -

Все, что я получаю из ошибки, - то, что MySQL не можетпримите введенное значение, и я предполагаю, что это может быть связано с неявным преобразованием данных, о котором я не знаю.Я не могу понять, как это исправить.Пожалуйста помоги !(Я еще не проверил данные)

1 Ответ

0 голосов
/ 10 июня 2018

Редактировать (Благодаря предложениям Оле В.В. )

Date давно устарел и плохо спроектирован, поэтому лучшим выбором был бы LocalDate.При этом решение будет состоять в том, чтобы использовать подготовленные операторы и:

jDateChooser1.getDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();

Пожалуйста, рассмотрите возможность размещения реального кода по сравнению с изображением кода.При этом для вставки литералов Date в mysql они должны быть в форматах, описанных здесь .Так что вам просто нужно больше манипулировать датой.Давайте использовать YYYY-MM-DD.Предполагая, что вы используете jDateChooser:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String dob = sdf.format(jDateChooser1.getSelectedDate().getTime());

В качестве дополнительного примечания, сейчас вы создаете запрос вручную и объединяете значения, это открыто для внедрения SQL.Пожалуйста, рассмотрите возможность использования Подготовленные заявления

...