mysql java.sql.BatchUpdateException

mdk_1982 2010-11-19 09:26:21
在线等待,jsp+mysql批处理显示异常 package com.madian.model;

import java.sql.Statement;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;



//这是对orders和ordersDetail的处理
public class OrderBeanBO {
private ResultSet rs=null;
private Connection ct=null;
private PreparedStatement ps=null;
public boolean addOrder(MyCartBO mbo,String userId)
{
boolean b=true;
try{
ct=new ConnDB().getConn();
ps=ct.prepareStatement("insert into orders(userId,isPayed,totalPrice) values(?,?,?)");
ps.setString(1, userId);
ps.setByte(2,(byte)0);
ps.setFloat(3, mbo.getAllPrice());
//执行
int a=ps.executeUpdate();
if(a==1){
//orders表添加成功
//添加ordersDetail表
//从购物车取出信息
ps=ct.prepareStatement("select max(ordersId) from orders");
System.out.println("第一关");
rs=ps.executeQuery();
System.out.println("第二关");
int orderId=0;
if(rs.next()){
orderId=rs.getInt(1);
System.out.println("第三关");
}
ArrayList al=mbo.showMyCart();
System.out.println("第四关");
Statement sm= ct.createStatement();
System.out.println("第五关");
for(int i=0;i<al.size();i++){
//我们使用批量语句
GoodsBean gb=(GoodsBean)al.get(i);
System.out.println("第六关");


sm.addBatch("insert into orderdetail values('"+orderId+"','"+gb.getGoodsId()+"','"+mbo.getGoodsNumById(gb.getGoodsId()+"")+"'");

System.out.println("第七关");
System.out.println(orderId);
System.out.println(gb.getGoodsId());
System.out.println(mbo.getGoodsNumById(gb.getGoodsId()+""));

}
//批量执行
sm.executeBatch();

System.out.println("第八关");

}else{
b=false;
}

}
catch (Exception e) {
b=false;
e.printStackTrace();
System.out.println("异常1");
}finally{
this.close();
}
return b;
}
public void close(){

try{
if(rs!=null){
rs.close();
rs=null;
}
if(ps!=null){ps.close();ps=null;}
if(ct!=null){ct.close();ct=null;}
}catch (Exception e) {
System.out.println("异常2");
}

}
}错误提示如下:
java.sql.BatchUpdateException: You have an error in your SQL syntax; check the m
anual that corresponds to your MySQL server version for the right syntax to use
near '' at line 1
at com.mysql.jdbc.StatementImpl.executeBatch(StatementImpl.java:1025)
at com.madian.model.OrderBeanBO.addOrder(OrderBeanBO.java:59)
at com.madian.servlet.OrderCIServlet.doGet(OrderCIServlet.java:38)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
a:298)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcesso
r.java:859)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.pr
ocess(Http11AprProtocol.java:579)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:15
55)
at java.lang.Thread.run(Thread.java:619)
异常1


...全文
1015 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

24,923

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Apache
社区管理员
  • Apache
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧