Java 在准备好的语句中使用ORDERBY

Java 在准备好的语句中使用ORDERBY,java,mysql,spring-mvc,Java,Mysql,Spring Mvc,我正在创建一个web应用程序,它使用JavaMVC数据库中的数据显示一个表 我有一个准备好的语句,用来生成工作正常的表,直到我尝试使用orderby 我很困惑,因为当我在mySQL工作台上运行这个查询时,它工作得很好: SELECT * FROM appointments ORDER BY date 然而,当我把它放在浏览器中我准备好的语句中时,它会返回一个无序列表 public void doRead(){ String query = "SELECT * FROM appointm

我正在创建一个web应用程序,它使用JavaMVC数据库中的数据显示一个表

我有一个准备好的语句,用来生成工作正常的表,直到我尝试使用orderby

我很困惑,因为当我在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;
}
试试看{
while(this.results.next()){
预约=新预约();
setAppointmentID(this.results.getInt(“约会id”);
appointment.setDescription(this.results.getString(“description”);
appointment.setDate(this.results.getString(“日期”);
表+=”;
表+=”;
table+=appointment.getDescription();
表+=”;
表+=”;
table+=约会。getDate();
表+=”;
表+=”;
}
}捕获(SQLE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
表+=”;
返回表;
}
浏览器中的输出:

牙医2015-09-17

牙医2015-09-17

牙医2015-09-17

牙医2015-10-09

牙医2015-09-03

牙医2015-09-03

牙医2015-09-03尝试添加排序顺序“ASC”:

日期是一个数字。使用反勾号:

String query = "SELECT * FROM appointments ORDER BY `date`";
另外,最好将
结果
设置为局部变量并关闭它

提示:


对于
,使用StringBuilder而不是字符串。速度更快,内存消耗更少。更好的做法是通过PrintWriter进行输出。

向我们展示您是如何打印它们的。您是否可以从java中对其进行排序?您是否将结果存储到不保留顺序的内容中,例如哈希集?当它不起作用时会发生什么?顺序是错误的还是例外?已编辑的答案@sᴜʀᴇsʜᴀᴛᴛᴀ如果不添加订购方向,“ASC”是默认行为。所以这是没有必要的。嗨,谢谢你的回答,但不幸的是,这对结果没有任何影响@JoopEggen,我也试图通过命令来命令,但仍然是一样的
String query = "SELECT * FROM appointments ORDER BY `date`";