【发布时间】:2014-12-11 19:09:18
【问题描述】:
我正在尝试运行此代码,但没有输出。但是当我从终端运行 SQL 查询时,它可以工作。请帮忙。
Statement stmt = conn.createStatement();
ResultSet rset1=stmt.executeQuery("SELECT ShowTime FROM Movie M, screens s WHERE M.MovieID = s.MovieID AND M.MovieID= 01");
while(rset1.next()){
//String tite=(rset1.getTimestamp("title"));
System.out.println(rset1.getString("Showtime"));
//text_39.append((rset1.getString("Showtime"))+"\n");
}
【问题讨论】:
-
没有数据返回。通过在 sqlplus 等 sqlplus for oracle 或 toad 客户端中运行它来检查您的 sql。
-
不确定您的 Java 问题,但作为 SQL 的建议,您应该使用
JOIN而不是旧语法。SELECT ShowTime FROM Movie M JOIN screens s ON M.MovieID = s.MovieID WHERE M.MovieID = 01 -
如果 M.MovieID 是数字数据类型,01 将被截断为 1,这将无法与字符串数据类型“01”正确比较,您可能需要将“01”包装在抽动所以看起来像
WHERE M.MovieID = s.MovieID AND M.MovieID= '01' -
还有,Showtime != ShowTime
-
逻辑上,如果查询在查询窗口中返回结果而不是在 java 代码中,则问题是 A) 没有指向正确的 DB 具有您期望的数据 B) 逻辑写入输出有缺陷(“ShowTime”!= "Showtime") C) 当你在传递你没有在 Java 中捕获的 SQL 时遇到错误。 SO 1) 确认您正在使用与查询窗口中相同的权限连接到同一个数据库,2) 更新 ShowTime,3) 添加一些错误处理以查看 SQL 驱动程序中是否有错误,如果有,请报告错误消息。