Не ясно, является ли это вашей единственной проблемой, но этот код почти наверняка не тот, который вы хотите:
Date aDate = null;
aDate.setYear(1990);
aDate.setDate(01);
aDate.setMonth(05);
- Он выдаст
NullPointerException
, потому что вы пытаетесь разыменовать null
- Затем вы пытаетесь установить год на 3890AD (
java.util.Date
на основе 1900 года)
- Затем вы устанавливаете месяц на июнь. Если вы думали, что устанавливаете месяц на май, подумайте еще раз -
Date
основывается на 0 для месяцев
- Все методы, которые вы используете, устарели - это должно поднять большую сигнальную лампочку для вас
- Затем вы пытаетесь разыграть
aDate
на java.sql.Date
, но нет никаких признаков того, что равно a java.sql.Date
Я бы предложил:
- Либо используйте Joda Time в качестве гораздо лучшего API даты / времени, либо
java.util.Calendar
- Убедитесь, что вы на самом деле создаете экземпляр, прежде чем устанавливать значения
- Вероятно, создайте новый
java.sql.Date
позже.
Например:
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 1990);
calendar.set(Calendar.DAY_OF_MONTH, 1);
calendar.set(Calendar.MONTH, 4); // Assuming you wanted May 1st
java.sql.Date date = new java.sql.Date(calendar.getTime().getTime());
// Ideally specify the columns here as well...
PreparedStatement prep = connection.prepareStatement(
"insert into exampletable values (?,?)");
prep.setDate(1, date);
prep.setDate(2, date);