java结果集不返回输出
我试图运行这段代码,但没有输出。但是,当我从终端运行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");
}
# 1 楼答案
如果M.MovieID是数字数据类型,01将被截断为1,这将无法与字符串数据类型'01'进行正确比较。您可能需要将'01'包装在tics中,使其看起来像
WHERE M.MovieID = s.MovieID AND M.MovieID= '01'
我在这里的想法是,驱动程序和DB引擎正在进行一些隐式转换,这可以防止语法错误,但在运行驱动程序时不会得到任何结果
为了更好地回答这个问题,我需要知道电影表和屏幕表中的数据类型是什么
# 2 楼答案
问题是
ResultSet.getString(String)
不区分大小写。将值更改为System.out.println(rset1.getString("ShowTime"));
应该可以解决您的问题