我正在使用此代码对用户进行身份验证。用户名和密码是从request参数中提取的,并传递到此方法进行身份验证。但是它抛出:
I am using this code for authenticating a user. The username and password are extracted from the request parameter and passed onto this method for authentication. But it throws a:
org.postgresql.util.PSQLException: ResultSet not positioned properly, perhaps you need to call next.请咨询。
推荐答案错误告诉您恰好出了什么问题-您没有在ResultSet上调用 next()来获取结果的第一行。
The error is telling you exactly what's wrong - you're not calling next() on your ResultSet to get to the first row of the results.
此行:
if(rs!=null)是毫无意义的;我认为 executeQuery 不会返回null。如果您的查询有问题,将引发异常。如果没有结果,它将返回一个空结果集。要查看是否有一行,应调用 next()并检查返回值:
is pointless as far as I know; I don't believe executeQuery will ever return null. If there's a problem in your query, an exception will be thrown. If there are no results, it will return an empty result set. To see if there's a row, you should call next() and check the return value:
if (rs.next())另外:
- 捕获异常并仅打印堆栈跟踪而不进行重新抛出几乎总是错误的方法
- 您的代码建议您以纯文本格式存储密码。请不要真的,真的不是。
- Catching an exception and just printing the stack trace without rethrowing is almost always the wrong approach
- Your code suggests that you're storing passwords in plain text. Please don't. Really, really don't.
更多推荐
PSQLException:ResultSet放置不正确,也许您需要调用下一个
发布评论