错误提示:
java.sql.SQLException: ORA-01008: 并非所有变量都已绑定
 Query: select id from admin where username=? and password=? Parameters: []
at org.apache.commons.dbutils.QueryRunner.rethrow(QueryRunner.java:359)
at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:240)
at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:309)
at com.v512.dbutil.OracleUtil.query(OracleUtil.java:47)
at com.v512.servlet.AdminUserServlet.doGet(AdminUserServlet.java:43)
at com.v512.servlet.AdminUserServlet.doPost(AdminUserServlet.java:63)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)
--------------------------------------------------------------------------------------------
问题代码:
String sql = "select id from admin where username=? and password=?";
String[] param = {"luzheng","wlz*8810"};
List list = (List) db.query(sql,param,new BeanListHandler(
Guestbook.class));
if (list.size() == 0) {
message="对不起,你输入的用户名和密码不正确,请重新输入!";
request.setAttribute("guestbook.admin.message", message);
request.getRequestDispatcher(request.getContextPath()+"/admin/logFail.jsp").forward(request, response);
}else{
HttpSession session = request.getSession();
session.setAttribute("guestbook.admin.username", username);
response.sendRedirect(request.getContextPath()+"/admin/secure/manage?q=list");
}

解决方案 »

  1.   

    虽然使用了第三方的查询功能,但明显预编译赋值有问题,资料看看那个query方法的资料
      

  2.   

    你是说 的是com.v512.dbutil.OracleUtil.query(OracleUtil.java:47)这个预编译的问题吗?它的代码我看了,就是找不到,下面是它的代码:
    public Object query(String sql,Object[] param,ResultSetHandler rsh){
    QueryRunner qr = new QueryRunner(ds);
    Object results=null;
    try {
    results= qr.query(sql,param, rsh);
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    return results;
    }
    谢谢了,我已经搞了好久了!
      

  3.   

    这个问题有可能是eclispe的和数据库的问题,我把代码又重写了一下又好了!对不起了!