2010-04-29 3 views
2

я использую JQuery DatePicker тогда я прочитал в моем сервлета так:вставить дату в базе данных MySQL

Строка dateimput = request.getParameter («DatePicker»); // 1 затем разобрать его так:

System.out.println("datepicker:" +dateimput); 
    DateFormat df = new SimpleDateFormat("MM/dd/yyyy");    
    java.util.Date dt = null; 
    try 
    { 
     dt = df.parse(dateimput); 
     System.out.println("date imput parssé1 est:" +dt); 
     System.out.println("date imput parsée2 est:" +df.format(dt)); 

    } catch (ParseException e) 
    { 
     e.printStackTrace(); 
    } 

и вставить запрос так:

String query = "Insert into dailytimesheet(trackingDate,activity,projectCode) values ("+df.format(dt)+", \""+activity+"\" ,\""+projet+"\")"; 

он успешно пройти недо сейчас, но если я проверить вставленные записи я нашел дату: 01/01/0001 00:00:00

Я пытался исправить это, но это все еще беспорядок для меня.

+0

Как выглядит запрос, прежде чем отправлять/применять в mysql? Покажите нам, что вы вставляете – basszero

+0

datepicker: 04/30/2010 date imput parssé1 est: Пт Апр 30 00:00:00 CEST 2010 дата imput parsée2 est: 04/30/2010 – kawtousse

+1

Если вы не хотите, чтобы SQL-инъекции возникали , следует использовать 'PreparedStatement' для размещения значений в SQL-выражении, а не для конкатенации строк. – coobird

ответ

2

Вы должны пройти даты в формате: "YYYY-MM-DD"

+0

@ kawtousse, но это ответ на ваш вопрос о нобе и стоит хотя бы наперед –

+0

И да, я полностью согласен с Гийомом, что ВЫ ДОЛЖНЫ ИСПОЛЬЗОВАТЬ PreparedStatements по соображениям безопасности и читаемости! – Hinek

4

Использование PreparedStatements, они имеют SETDATE (...) метод.

Серьезно, Пожалуйста, используйте PreparedStatements! особенно в контексте webapp. В противном случае вы столкнулись с SQL injections

Смежные вопросы