2015-10-07 2 views
1

Я создаю веб-приложение, которое отображает таблицу, используя данные из базы данных с использованием Java MVC.с использованием ORDER BY в подготовленном сообщении

У меня есть подготовленный оператор, который я использую для создания таблицы, которая отлично работает, пока я не попытаюсь использовать ORDER BY.

Я совершенно запутался, когда я запускаю этот запрос в верстаке MYSQL работает отлично:

SELECT * FROM appointments ORDER BY date 

Однако, когда я положил его в мое подготовленное заявление в браузере он возвращает неупорядоченный список.

public void doRead(){ 
    String query = "SELECT * FROM appointments ORDER BY date"; 

    try { 
     PreparedStatement ps = this.connection.prepareStatement(query); 
     this.results = ps.executeQuery(); 
    } catch (SQLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

Поблагодарили бы за любую помощь.

в запрошенных им печати таблицы с помощью этого метода здесь:

try { 
     while(this.results.next()){ 
      Appointment appointment = new Appointment(); 
      appointment.setAppointmentID(this.results.getInt("appointment_id")); 
      appointment.setDescription(this.results.getString("description")); 
      appointment.setDate(this.results.getString("date")); 

      table += "<tr>"; 
      table += "<td>"; 
      table += appointment.getDescription(); 
      table += "</td>"; 
      table += "<td>"; 
      table += appointment.getDate(); 
      table += "</td>"; 
      table += "</tr>"; 
     } 
    } catch (SQLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    table += "</table>"; 
    return table; 
} 

выхода в браузере:

Стоматолога 2015-09-17

Стоматолог 2015-09-17

Стоматолог 2015-09-17

Dentist 2015-10-09

Стоматолог 2015-09-03

Стоматолог 2015-09-03

Стоматолог 2015-09-03

+0

Покажите нам, как вы их печатаете –

+0

Не можете ли вы отсортировать его после, из java? –

+1

Сохраняете ли вы результаты что-то, что не сохраняет порядок, например, HashSet? –

ответ

0

Попробуйте добавить порядок сортировки "ASC":

SELECT * FROM appointments ORDER BY date ASC 
+0

это не работает –

+1

* «ASC» * является поведением по умолчанию, если вы не добавляете направление упорядочения. Так что это не обязательно. – Tom

1

DATE - reserved word. Используйте обратные кавычки:

String query = "SELECT * FROM appointments ORDER BY `date`"; 

Также лучше сделать results локальной переменной и закрыть его.

Совет:

Используйте StringBuilder вместо String, для table. Гораздо быстрее, меньше голода. Лучше даже было бы передать PrintWriter для вывода.

+0

привет, спасибо за этот ответ, но, к сожалению, это не повлияло на результат @JoopEggen, я тоже попытался заказать по подписке и все тот же –