Java 结果集为';t进入while循环并设置值

Java 结果集为';t进入while循环并设置值,java,servlets,Java,Servlets,观察这段代码的一个奇怪行为,因为resultset没有给出null值(这很清楚),但没有进入while循环(这很奇怪!),而且它是一个简单的dao类,所以无法在user对象中设置值: 甚至我也在使用相同的代码,比如selectall用户的代码,在这个时间点我得到了正确的o/p 花了这么多时间,却无法解决我的问题……因此,欢迎您的审阅和评论。这是因为您的查询没有为您提取任何行。因此,rs.next()将返回false,因此执行不会进入while循环: while(rs!= null &&a

观察这段代码的一个奇怪行为,因为resultset没有给出null值(这很清楚),但没有进入while循环(这很奇怪!),而且它是一个简单的dao类,所以无法在user对象中设置值:

甚至我也在使用相同的代码,比如selectall用户的代码,在这个时间点我得到了正确的o/p


花了这么多时间,却无法解决我的问题……因此,欢迎您的审阅和评论。

这是因为您的
查询
没有为您提取任何行。因此,
rs.next()
将返回
false
,因此执行不会进入
while循环

while(rs!= null && rs.next())
您不必检查
rs!=空
。它不会是空的。
stmt.executeQuery
始终返回
ResultSet
。只要在
中加入
rs.next()
,而

while(rs.next())

是的,您应该使用来执行
查询
,而不是
语句
。下面是一个帮助您开始的示例。

这是因为您的
查询没有获取任何行。因此,
rs.next()
将返回
false
,因此执行不会进入
while循环

while(rs!= null && rs.next())
您不必检查
rs!=空
。它不会是空的。
stmt.executeQuery
始终返回
ResultSet
。只要在
中加入
rs.next()
,而

while(rs.next())

是的,您应该使用来执行
查询
,而不是
语句
。下面是一个帮助您入门的示例。

但它显示的是Hi-rs:com.mysql.jdbc。JDBC4ResultSet@35e6e3@用户1645434。。它会显示出来,因为它是
ResultSet
reference的值。它不会为空。请看我更新的答案。不介意,但是……你会发现完整的问题已经发布在这里了,所以你能看一下吗,……如果我必须更改答案,有什么建议吗code@user1645434.. 我已经提出了一个建议。使用PreparedStatement而不是
语句
。然后让你的代码开始工作。然后你可以看看你是否能在这方面有所改进。请看本教程-我不能在这里解释一切。也请阅读我之前的评论。但是它显示了Hi-rs:com.mysql.jdbc。JDBC4ResultSet@35e6e3@用户1645434。。它会显示出来,因为它是
ResultSet
reference的值。它不会为空。请看我更新的答案。不介意,但是……你会发现完整的问题已经发布在这里了,所以你能看一下吗,……如果我必须更改答案,有什么建议吗code@user1645434.. 我已经提出了一个建议。使用PreparedStatement而不是
语句
。然后让你的代码开始工作。然后你可以看看你是否能在这方面有所改进。请看本教程-我不能在这里解释一切。也请阅读我之前的评论。哎哟。如果您不想被SQL注入攻击攻击,请了解准备好的语句:请注意:为什么不使用调试器而不是“回显我所做的”
System.out.println()
calls?这将使你的生活变得更加轻松,很难找到准确描述它的词语。@ppeterka,坦率地说,在这种情况下如何使用调试器。你是什么意思?设置断点,启动服务器,发出请求,等待调试器中断执行,观察临界点中的变量。只是平常的事。(如果服务器是远程运行的,则必须将调试器连接到服务器)@user1645434:就像在其他上下文中一样。在方法的开头放置一个断点,在调试模式下执行代码直到到达断点,然后逐行查看执行的内容,并检查变量以查看它们包含的内容。哎哟。如果您不想被SQL注入攻击攻击,请了解准备好的语句:请注意:为什么不使用调试器而不是“回显我所做的”
System.out.println()
calls?这将使你的生活变得更加轻松,很难找到准确描述它的词语。@ppeterka,坦率地说,在这种情况下如何使用调试器。你是什么意思?设置断点,启动服务器,发出请求,等待调试器中断执行,观察临界点中的变量。只是平常的事。(如果服务器是远程运行的,则必须将调试器连接到服务器)@user1645434:就像在其他上下文中一样。在方法的开头放置一个断点,在调试模式下执行代码直到到达断点,然后逐行查看执行的内容,并检查变量以查看它们包含的内容。