java光标位置无效_ResultSet.getString(1)引发java.sql.SQLException:当前光标位置的无效操作...

当我运行以下servlet时:

// package projectcodes;

public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {

String UserID = request.getParameter("UserID");

String UserPassword = request.getParameter("UserPassword");

String userName = null;

String Email = null;

Encrypter encrypter = new Encrypter();

String hashedPassword = null;

try {

hashedPassword = encrypter.hashPassword(UserPassword);

Context context = new InitialContext();

DataSource ds = (DataSource)context.lookup("java:comp/env/jdbc/photog");

Connection connection = ds.getConnection();

String sqlStatement = "SELECT email,firstname FROM registrationinformation WHERE password='" + hashedPassword + "'";

PreparedStatement statement = connection.prepareStatement(sqlStatement);

ResultSet set = statement.executeQuery();

userName = set.getString(1); // <

response.sendRedirect("portfolio_one.jsp");

// userName = set.getString("FirstName");

Email = set.getString(3);

if(set.wasNull() || Email.compareTo(UserID) != 0) {

// turn to the error page

response.sendRedirect("LoginFailure.jsp");

} else {

// start the session and take to his homepage

HttpSession session = request.getSession();

session.setAttribute("UserName", userName);

session.setMaxInactiveInterval(900); // If the request doesn't come withing 900 seconds the server will invalidate the session

RequestDispatcher rd = request.getRequestDispatcher("portfolio_one.jsp");

rd.forward(request, response); // forward to the user home-page

}

}catch(Exception exc) {

System.out.println(exc);

}

我得到以下异常:

INFO: java.sql.SQLException: Invalid operation at current cursor position.

at org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(Unknown Source)

at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)

at org.apache.derby.client.am.ResultSet.getString(Unknown Source)

at com.sun.gjc.spi.base.ResultSetWrapper.getString(ResultSetWrapper.java:155)

-----> at projectcodes.ValidateDataForSignIn.doPost(ValidateDataForSignIn.java:28

at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)

at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1539)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)

at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)

at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)

at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:330)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)

at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:174)

at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:828)

at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725)

at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019)

at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)

at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)

at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)

at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)

at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)

at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)

at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)

at com.sun.grizzly.ContextTask.run(ContextTask.java:71)

at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)

at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)

at java.lang.Thread.run(Thread.java:722)

Caused by: org.apache.derby.client.am.SqlException: Invalid operation at current cursor position.

at org.apache.derby.client.am.ResultSet.checkForValidCursorPosition(Unknown Source)

at org.apache.derby.client.am.ResultSet.checkGetterPreconditions(Unknown Source)

... 30 more

服务器上面的日志显示,行号28是导致异常的原因。但是我无法得到例外的原因。表中的所有列的数据类型均为varchar。

我已在Servlet代码中突出显示了行号28 (根据服务器日志的异常原因) 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值