商城之添加订单,jdbc事务,获取刚插入的标识列

来源:互联网 发布:开网店软件可靠吗 编辑:程序博客网 时间:2024/05/16 11:55
//添加订单public boolean addOrder(Easybuy_order eo,List<Easybuy_order_detail> list){boolean flag=false;Connection con=BaseDao.getCon();PreparedStatement sta=null;PreparedStatement sta1=null;PreparedStatement sta2=null;ResultSet rs=null;String sql="insert into Easybuy_order values (?,?,?,default,?,1,1)  select SCOPE_IDENTITY() as id";try {//设置自动提交为假con.setAutoCommit(false);//添加订单sta=con.prepareStatement(sql);sta.setString(1, eo.getEo_user_id());sta.setString(2, eo.getEo_user_name());sta.setString(3, eo.getEo_user_address());sta.setDouble(4, eo.getEo_cost());rs =sta.executeQuery();rs.next();int id = rs.getInt(1);//添加订单详情for (Easybuy_order_detail eod : list) {String sql3="insert into Easybuy_order_detail values(?,?,?,?)";sta1=con.prepareStatement(sql3);sta1.setInt(1, id);sta1.setInt(2,eod.getEp_id());sta1.setInt(3,eod.getEod_quantity());sta1.setDouble(4,eod.getEod_cost());sta1.executeUpdate();//修改产品库存String sql2 ="update easybuy_product set ep_stock = ep_stock - ? where ep_id = ?";sta2 = con.prepareStatement(sql2);sta2.setInt(1, eod.getEod_quantity());sta2.setInt(2, eod.getEp_id());sta2.executeUpdate();}//提交 con.commit();flag = true;} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}finally{try {//还原自动提交为真con.setAutoCommit(true);} catch (SQLException e) {e.printStackTrace();}BaseDao.closeAll(rs, sta, con);BaseDao.closeAll(null, sta1, null);}return flag;}

0 0
原创粉丝点击