java – “if(rs.next())”是什么意思?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – “if(rs.next())”是什么意思?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1433字,纯文字阅读大概需要3分钟。
内容图文
![java – “if(rs.next())”是什么意思?](/upload/InfoBanner/zyjiaocheng/709/7e91f8c6fb23494cafdbb0c7880b2893.jpg)
我目前收到错误,
java.sql.SQLException: Method 'executeQuery(String)' not allowed on prepared statement.
因为我正在使用
PreparedStatement stmt = conn.prepareStatement(sql);
还有
ResultSet rs = stmt.executeQuery(sql);
在我的代码中.
我现在需要删除ResultSet行,但这使我不得不处理以下代码:
if (rs.next()) {
messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("login.successful"));
request.getSession(true).setAttribute("USERNAME", rs.getString("USERNAME"));
request.getSession(true).setAttribute("BALANCE", rs.getString("BALANCE"));
request.setAttribute("msg", "Logged in successfully");
我不确定我完全明白什么
if (rs.next())
确实.有人可以向我解释这段代码吗?如果我对此有了更好的理解,我相信我会更好地了解如何使用用于rs的逻辑来处理PreparedStatement结果.此外,任何有助于改变逻辑的帮助也将受到高度赞赏.
解决方法:
至于SQLException的具体问题,您需要替换
ResultSet rs = stmt.executeQuery(sql);
通过
ResultSet rs = stmt.executeQuery();
因为您使用的是PreparedStatement子类而不是Statement.使用PreparedStatement时,您已经将SQL字符串传递给Connection#prepareStatement().您只需在其上设置参数,然后直接调用executeQuery()方法而无需重新传递SQL字符串.
也可以看看:
> JDBC tutorial – Using Prepared Statements
至于关于rs.next()的具体问题,它将光标移动到数据库结果集的下一行,如果有任何行则返回true,否则返回false.结合if语句(而不是while),这意味着程序员只期望或感兴趣的是第一行,即第一行.
也可以看看:
> Javadoc on ResultSet#next() method
> Problem with SQL, ResultSet in java
内容总结
以上是互联网集市为您收集整理的java – “if(rs.next())”是什么意思?全部内容,希望文章能够帮你解决java – “if(rs.next())”是什么意思?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。