报错信息:
是建表的时候建立约束的时候没有no action
下面的第一个表是修改过的 意思是为当前表oid 添加外键约束 参照的是orders表内的oid 该约束名是oid 删除的时候使用级联 而修改的时候没动作。
CONSTRAINT `oid` FOREIGN KEY (`oid`) REFERENCES `orders` (`oid`) ON DELETE CASCADE ON UPDATE NO ACTION,
CONSTRAINT `bid` FOREIGN KEY (`bid`) REFERENCES `book` (`bid`) ON DELETE NO ACTION ON UPDATE NO ACTION
java.lang.RuntimeException: java.sql.SQLException: Wrong number of parameters: expected 1, was given 2 Query: delete from orders where oid = ? Parameters: [org.apache.commons.dbutils.handlers.BeanHandler@5425f96c, 0277d22417d54f9b9b4f0fac93384067]
com.dao.impl.OrderDaoImpl.delOrder(OrderDaoImpl.java:70)
com.service.impl.OrderServiceImpl.delOrder(OrderServiceImpl.java:46)
com.controller.OrderServlet.delOrder(OrderServlet.java:119)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:498)
com.controller.BaseServlet.service(BaseServlet.java:28)
javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
就算刚刚找出了错误,还是报错。最后修修改了update语句
qr.update("delete from orders where oid =?",oid);
错误语句是如下
qr.update("delete from orders where oid =?",new BeanHandler<Order>(Order.class),bid);