nested exception is java.sql.SQLException: 无效的列索引
sql语句在plsql里运行正常,但是服务器运行,就会报上上面的错 --------------------编程问答-------------------- 把相关sql语句的代码贴出来看看 --------------------编程问答--------------------public Map saveOrder(HttpServletRequest request, String method)
{
String order_name = req.getValue(request, "order_name"); //订单人姓名
String order_link_msisdn = req.getValue(request, "order_link_msisdn"); //订单人联系号码
String operator_id = req.getValue(request, "operator_id"); //登录用户账号
String sex = req.getValue(request, "sex"); //订单人性别
String order_link_addr = req.getValue(request, "order_link_addr"); //订单人联系地址
String will_time = req.getValue(request, "will_time"); //期望到货时间
String is_my = req.getValue(request, "is_my"); //是否满意
String[] wuPins = req.getValues(request, "wuPins"); //订单物品
String id = req.getValue(request, "id"); //订单id
String sql = "";
String operat = "";
String new_id = ""; //订单新id
BatchSql batchSql = new BatchSql();
if(method.equals("update"))
{
sql = "update t_order_list a set a.operator_date=sysdate, " +
"a.order_link_msisdn="+order_link_msisdn+", a.order_link_addr='"+order_link_addr+"', a.sex="+sex+", a.is_my="+is_my+", a.will_time='"+will_time+"' "+
"where a.id = "+id;
operat = "更新";
}else
{
new_id = db.getNextSequenceValue("t_order_list_s_id");
id = new_id;
sql = "insert into t_order_list(operator_id, operator_date, " +
"order_name, order_link_msisdn, sex, order_link_addr, will_time, " +
"is_my, id) values(?,sysdate,?,?,?,?,?,?,"+ new_id +")";
operat = "添加";
}
batchSql.addBatch(sql, new Object[]{operator_id, order_name,order_link_msisdn,order_link_addr,sex,is_my,will_time});
Map resultmap = new HashMap();
sql = "delete t_order_list_detail a where a.order_id = "+id;
batchSql.addBatch(sql, new Object[]{id});
for(String wuPin : wuPins)
{
sql = "insert into t_order_list_detail(order_id, wupin) values(?,?)";
batchSql.addBatch(sql, new Object[]{id,wuPin});
}
int result=db.doInTransaction(batchSql);
resultmap.put(Constants.RESULT, result);
if(result==1)
{
resultmap.put(Constants.SHOW, "订单【"+ order_name +"/" + order_link_msisdn + "】"+ operat +"成功!");
}
else
{
resultmap.put(Constants.SHOW, "订单【"+ order_name +"/" + order_link_msisdn + "】"+ operat +"失败!");
}
return resultmap;
} --------------------编程问答-------------------- 有些字段是非空的,而你在进行更新或新增语句的时候传进了空值
如果是直接拼sql语句,在执行之前。将这条sql打印出来,看看符不符合期望
如果是预编译语句,在执行之前,将参数值打印出来
补充:Java , Web 开发