SSH结合,循环插入数据库时,为什么先insert一条语句,后面就update了,id是主键,auto_increment

for(inti=0;i<bookSum.length;i++){order.setUserName(userName);order.setAddress(address... for(int i=0;i<bookSum.length;i++){
order.setUserName(userName);
order.setAddress(address);
order.setDate(stamp1);
order.setBookName(bookName[i]);
order.setBookPrice(bookPrice[i]);
order.setAccount(account[i]);
order.setBookSum(bookSum[i]);
iOrderManager.addOrder(order);
}

下面是插入语句:
Hibernate: insert into bookstore.t_order (userName, bookName, bookPrice, account, bookSum, date, address) values (?, ?, ?, ?, ?, ?, ?)
Hibernate: update bookstore.t_order set userName=?, bookName=?, bookPrice=?, account=?, bookSum=?, date=?, address=? where orderId=?
Hibernate: update bookstore.t_order set userName=?, bookName=?, bookPrice=?, account=?, bookSum=?, date=?, address=? where orderId=?
展开
 我来答
bd9006
2011-12-04 · TA获得超过2.5万个赞
知道大有可为答主
回答量:4.8万
采纳率:63%
帮助的人:1.6亿
展开全部
order 只new 了一次,所以后面的更新自然是update了。
shy2850
2011-12-04 · TA获得超过6774个赞
知道大有可为答主
回答量:2505
采纳率:55%
帮助的人:1575万
展开全部
add这个方法是有些智能化的,当插入对象中的id存在是用的update,否则用的insert、

order 对象在第一次插入成功之后就携带上指定的id了,所以后面都是update,可改进的方案是:
在add执行之前加入order.setOrderId(null);
追问
谢谢你的回答,orderId是主键,自增,不能为null.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式