【发布时间】:2013-12-22 10:10:04
【问题描述】:
我正在用 Java 制作一个类来连接或与我在其他地方设置的数据库通信。我想对一条语句使用 executeQuery 方法,并接收一个 ResultSet,从中我将检索在 ResultSet 中接收到的信息。
我的问题与 SQL 命令有关,如下所示;我发送到数据库的查询。似乎出了点问题,我在发送命令的那一刻收到了一个 SQLException,这意味着我一定做错了什么。 也许我写错了什么?我不知道,因为我只是尽力遵循为本课程提供的示例指导。
这是我要发送的查询:
"SELECT fr.DepartureLocation, fr.Destination, d.Date, d.Time FROM `FlightRoute` fr,
`Departure` d WHERE d.FlightRouteId = fr.Id AND d.Date > " + dateFrom + " AND
d.Date < " + dateTo + " AND fr.Destination = `" + destination + "`;"
“dateFrom”、“dateTo”和“destination”都是我正在调用的方法的参数,我试图将我从这个语句中得到的结果限制为某个日期范围内的结果以及有一个特定的目的地。 我可能会补充一点,日期是排列在一起的整数,例如:20131205 这应该可以使以后的日期更高。
是我在 SQL 代码中使用参数的方式错误,还是我在这里制作了一般错误的 SQL 代码?
非常感谢任何能够提供正确的 SQL 代码供我使用的人,这样我就可以看到我做错了什么(因为我必须编写更多类似的工作 SQL 语句)! 提前致谢! :)
编辑: 这是我宣布查询并尝试执行它的请求代码:
try
{
ArrayList<Departure> departures = new ArrayList<>();
Statement stmt = con.createStatement();
System.out.println("derp0");
String query = "SELECT fr.DepartureLocation, fr.Destination, d.Date, d.Time FROM FlightRoute fr, Departure d WHERE d.FlightRouteId = fr.Id AND d.Date > " + dateFrom + " AND d.Date < " + dateTo + " AND fr.Destination = `" + destination + "`;";
System.out.println("derp0.1");
ResultSet rs = stmt.executeQuery(query);
System.out.println("derp1");
作为一个简短的解释,souts 是检查 SQLException 发生的位置,我只能说异常发生在“derp0.1”之后。
【问题讨论】:
-
能否提供调用查询的堆栈跟踪或一段代码?
-
我现在添加了您要求的内容。这对解决问题有帮助吗? :S
标签: java mysql sql sql-server jdbc