jsp中插入一行数据 javax.servlet.ServletException: java.sql.SQLException: 索引中丢失 IN 或 OUT参数

org.apache.jasper.JasperException: An exception occurred processing JSP page /project/add.jsp at line 36

33:
34: String sql = "insert into emp values("+ Integer.parseInt(empno)+","+"'"+ename+"'"+","+"'"+ename+"'"+","+Integer.parseInt(mgr)+","+"'"+job+"'"+","+d+","+Integer.parseInt(sal) +","+Integer.parseInt(comm)+","+Integer.parseInt(deptno) +")";
35: pstmt = conn.prepareStatement(sql);//将预编译的sql语句存储在pstmt对象中
36: int i= pstmt.executeUpdate();
37: sql = "select * from emp";
38: pstmt = conn.prepareStatement(sql);
39: rs = pstmt.executeQuery();

javax.servlet.ServletException: java.sql.SQLException: 索引中丢失 IN 或 OUT 参数:: 1

参数个数不对,楼主仔细看一下你表中属性的个数以及顺序是否和你insert函数中的参数对应。追问

改了 又换了一种错误 int i= pstmt.executeUpdate();这一行出错

javax.servlet.ServletException: java.sql.SQLException: ORA-01722: 无效数字

追答

非数字字符转化为数字时报的错,楼主看一下那个Integer.parseInt的参数是不是有无法转化成数字的变量,然后你试一下把d编程d.toString()

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-15
没写字段名,默认为全部字段的插入 ,试着检查你给出的字段数量是否完整。追问

全部插入了 字段数量完整 那个d是date类型的
java.text.SimpleDateFormat sim=new SimpleDateFormat("yyyy-MM-dd");
java.util.Date d=sim.parse(hiredate);

第2个回答  2013-06-14
没有给出字段名列表insert into emp(这里是字段列表) values