Java: создание объекта даты из строки и вставка в MySQL - PullRequest
0 голосов
/ 16 декабря 2008

Каждый раз, когда мне приходится обращаться с датами / временем в Java, это огорчает меня

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

"Исключение в потоке" main "java.lang.Error: Неразрешенная проблема компиляции: Метод setDate (int, Date) в типе PreparedStatement не применим для аргументов (int, Date) "

Эх WTF?

Вот код ошибки.

for(int i = 0; i < flights.size(); i++){

    String[] details = flight[i].toString().split(":"); 
    DateFormat formatter ; 
    formatter = new SimpleDateFormat("ddMMyyyy");
    Date date = formatter.parse(details[1]); 

    PreparedStatement pstmt = conn.prepareStatement(insertsql);
    pstmt.setString(1, details[0]);
    pstmt.setDate(2, date);
    pstmt.setString(3, details[2] + "00");
    pstmt.setString(4, details[3]);
    pstmt.setString(5, details[4]);
    pstmt.setString(6, details[5]);
    pstmt.setString(7, details[6]);
    pstmt.setString(8, details[7]);
    pstmt.setString(9, details[8]);
    pstmt.executeUpdate();

}

Ответы [ 3 ]

8 голосов
/ 16 декабря 2008

PreparedStatement.setDate занимает java.sql.Date , а не java.util.Date .

(Интересно, почему вы на самом деле не воспринимаете это как ошибку во время компиляции? Ваша жизнь станет намного проще, если вы сможете устранять ошибки компиляции, не прибегая к этой точке в тестовом прогоне .. .)

4 голосов
/ 16 декабря 2008

Я думаю, вы смешали java.util.Date и java.sql.Date ...

1 голос
/ 26 августа 2009

Строка в MySQL Дата / Время

import java.sql.Date;
import java.sql.Time;

 statement.setDate(4, Date.valueOf("2009-08-26"));
 statement.setTime(5, Time.valueOf("12:04:08"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...