mysqlarameter
代码如下 求解哪里错误
package com.pact.mobilestore;
import java.io.ioexception;
import java.sql.connection;
import java.sql.drivermanager;
import java.sql.preparedstatement;
import java.sql.sqlexception;
import java.util.arraylist;
import java.util.list;
import javax.servlet.servletexception;
import javax.servlet.http.httpservlet;
import javax.servlet.http.httpservletrequest;
import javax.servlet.http.httpservletresponse;
import javax.servlet.http.httpsession;
public class openorder extends httpservlet {
/**
*/private static final long serialversionuid = 1l;public void dopost(httpservletrequest request, httpservletresponse response)
throws servletexception, ioexception {
// 统一编码格式
request.setcharacterencoding(utf-8);
response.setcontenttype(text/html; charset=utf-8);
connection conn = null; // 连接对象preparedstatement preparedstatement = null;httpsession session = request.getsession();object obj = session.getattribute(currid);string uid = (string) obj;string option = request.getparameter(option);int op =integer.parseint(option); switch(op) { case 0: try { class.forname(com.mysql.jdbc.driver); string url = jdbc:mysql://localhost:3306/mobilestore; string username = root; string pass = root; conn = drivermanager.getconnection(url, username, pass); string sql = select * from `order` where uid =?; preparedstatement = conn.preparestatement(sql); preparedstatement.setstring(1, uid); java.sql.resultset rs = preparedstatement.executequery(); list list = new arraylist(); while (rs.next()) { entery4 ent4 = new entery4(); string oid = rs.getstring(oid); string date = rs.getstring(date); string paydate = rs.getstring(paydate); string total = rs.getstring(total); // 购买的数量 string state = rs.getstring(state); ent4.setoid(oid); ent4.setuserid(uid); ent4.setdate(date); ent4.setpaydate(paydate); ent4.settotal(total); ent4.setstate(state); list.add(ent4); } rs.close(); request.setattribute(info, list); } catch (sqlexception e) { // todo: handle exception e.printstacktrace(); } catch (classnotfoundexception e) { // todo auto-generated catch block e.printstacktrace(); } finally { try { preparedstatement.close(); conn.close(); } catch (exception e2) { // todo: handle exception } } request.getrequestdispatcher(myorder.jsp).forward(request, response); break; case 1: try { class.forname(com.mysql.jdbc.driver); string url = jdbc:mysql://localhost:3306/mobilestore; string username = root; string pass = root; conn = drivermanager.getconnection(url, username, pass); string sql = select * from `order` where uid = ?and state =?; preparedstatement = conn.preparestatement(sql); preparedstatement.setstring(1, uid); preparedstatement.setstring(2, 未支付); java.sql.resultset rs = preparedstatement.executequery(); list list = new arraylist(); while (rs.next()) { entery4 ent4 = new entery4(); string oid = rs.getstring(oid); string date = rs.getstring(date); string paydate = rs.getstring(paydate); string total = rs.getstring(total); // 购买的数量 string state = rs.getstring(state); ent4.setoid(oid); ent4.setuserid(uid); ent4.setdate(date); ent4.setpaydate(paydate); ent4.settotal(total); ent4.setstate(state); list.add(ent4); } rs.close(); request.setattribute(info, list); } catch (sqlexception e) { // todo: handle exception e.printstacktrace(); } catch (classnotfoundexception e) { // todo auto-generated catch block e.printstacktrace(); } finally { try { preparedstatement.close(); conn.close(); } catch (exception e2) { // todo: handle exception } } request.getrequestdispatcher(myorder1.jsp).forward(request, response); break; case 2: try { class.forname(com.mysql.jdbc.driver); string url = jdbc:mysql://localhost:3306/mobilestore; string username = root; string pass = root; conn = drivermanager.getconnection(url, username, pass); string sql = select * from `order` where uid = ? and state =?; preparedstatement = conn.preparestatement(sql); preparedstatement.setstring(1, uid); preparedstatement.setstring(2, 已支付); java.sql.resultset rs = preparedstatement.executequery(); list list = new arraylist(); while (rs.next()) { entery4 ent4 = new entery4(); string oid = rs.getstring(oid); string date = rs.getstring(date); string paydate = rs.getstring(paydate); string total = rs.getstring(total); // 购买的数量 string state = rs.getstring(state); ent4.setoid(oid); ent4.setuserid(uid); ent4.setdate(date); ent4.setpaydate(paydate); ent4.settotal(total); ent4.setstate(state); list.add(ent4); } rs.close(); request.setattribute(info, list); } catch (sqlexception e) { // todo: handle exception e.printstacktrace(); } catch (classnotfoundexception e) { // todo auto-generated catch block e.printstacktrace(); } finally { try { preparedstatement.close(); conn.close(); } catch (exception e2) { // todo: handle exception } } request.getrequestdispatcher(myorder2.jsp).forward(request, response); break;
// default:
// system.out.println(default);
// break;
}
}
public void doget(httpservletrequest req, httpservletresponse resp)
throws servletexception, ioexception { dopost(req, resp); }
}
错误提示截取
java.sql.sqlexception: parameter index out of range (2 > number of parameters, which is 1).
at com.mysql.jdbc.sqlerror.createsqlexception(sqlerror.java:910)
at com.mysql.jdbc.preparedstatement.setinternal(preparedstatement.java:2715)
at com.mysql.jdbc.preparedstatement.setstring(preparedstatement.java:3546)
at com.pact.mobilestore.openorder.dopost(openorder.java:56)
at com.pact.mobilestore.openorder.doget(openorder.java:221)
at javax.servlet.http.httpservlet.service(httpservlet.java:617)
at javax.servlet.http.httpservlet.service(httpservlet.java:723)