Дата разбора в Java - PullRequest
       3

Дата разбора в Java

1 голос
/ 01 апреля 2012

Добрый день всем! У меня проблема с моим "свиданием". Это нужно разобрать, но я не знаю, как это сделать. Может ли кто-нибудь помочь мне, предложив исправления в моем коде?

    <%
String format = "yyyy-MM-dd";
DateFormat df = new SimpleDateFormat(format); 
String faculty = request.getParameter("faculty");
String absent_date = request.getParameter("absent_date");
int intFaculty = Integer.parseInt(faculty);

System.out.println(faculty);
System.out.println(df.parse(absent_date));

java.sql.Date absentdate  = new java.sql.Date(df.parse(absent_date).getDate());
Absences abs = new Absences();
abs.setFaculty_id(intFaculty);
abs.setAbsent_date(absentdate);
int result = AbsencesImpl.AddAbsences(abs);
if (result == 0)
{
%>
    <jsp:forward page="ListAbsences.jsp">
    <jsp:param name="msg" value="Record Successfully Added"/>
    <jsp:param name="ret" value="meron"/>
    </jsp:forward>
<%
}

%>

Для результата и ошибки в консоли:

 5 
 Tue May 01 00:00:00 CST 2012
 java.sql.SQLException: 3 values for 2 columns

Я нашел это, но я не знаю, как реализовать это в моих кодах.

 SimpleDateFormat parserSDF=new SimpleDateFormat("EEE MMM d HH:mm:ss zzz yyyy");

Я использую Eclipse Indigo, Sqlite и Apache Tomcat

Оператор вставки (я использую MVC)

public int AddAbsences(Absences abs)
{
    Connection con = null;
    PreparedStatement pstmt;
    ConnDB conn = new ConnDB();
    String sql = "INSERT INTO absences( faculty_id, absent_date) VALUES(?, ?)";

    try{
        con = conn.connect();
        try{
            pstmt = con.prepareStatement(sql);
            pstmt.setInt(1, abs.getFaculty_id());
            pstmt.setDate(2, abs.getAbsent_date());

            pstmt.executeUpdate();
        }catch(Exception e){
            System.out.println(e);
        }
        con.close();
    }catch(Exception e){
        System.out.println(e);
    }
    return 0;
}

Ответы [ 2 ]

0 голосов
/ 01 апреля 2012

Попробуйте сформулировать оператор вставки, который будет работать с консоли управления базой данных (которая всегда является вашей базой данных), затем попытайтесь заменить то же самое в коде аргументами. Там вы также получите формат даты. Существует несколько функций sql date, которые вы можете использовать в самом запросе, которые преобразуют дату из вашего читабельного кода.

Например: в MsSQL - приведение («20120312» в качестве даты и времени) преобразует строковую дату 12-03-2012 в дату и время.

попробуйте найти функции даты sql для вашего типа базы данных.

0 голосов
/ 01 апреля 2012

Я рекомендую использовать

df.parse(absent_date).getTime()

вместо

df.parse(absent_date).getDate()

А также, я подозреваю, что у вас отсутствуют таблицы с 3 столбцами, но вы пытаетесь вставить только 2 значения,Если одним из значений из таблицы является id, то я подозреваю, что это значение не сгенерировано автоматически.

Надеюсь, оно вам поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...