[英]using ORDER BY in a prepared statement
我正在創建一個Web應用程序,該應用程序使用Java MVC使用數據庫中的數據顯示表。
我有一個准備好的語句,可以用來生成在我嘗試使用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
牙醫2015-10-09
牙醫2015-09-03
牙醫2015-09-03
牙醫2015-09-03
DATE是保留字 。 使用反引號:
String query = "SELECT * FROM appointments ORDER BY `date`";
還可以更好地使results
成為局部變量並將其關閉。
小費:
table
使用StringBuilder而不是String。 更快,更少的內存消耗。 甚至最好是傳遞一個PrintWriter進行輸出。
嘗試添加排序順序“ ASC”:
SELECT * FROM appointments ORDER BY date ASC
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.