我用的是sql server数据库,现在有两张表为t_order,t_order_item.他们有一个共同的字段order_id且都为主键还自增的.当进行插入记录的时候必须同时对两张表添加一条记录.要用到commit的东东.我不会用!
我的代码:
public void orderitem_insert(BookStore bookstore){
String sqlprimary="insert into t_order_item   (book_name,book_count) values(?,?)";
    String sq1="insert into t_order(customer_name,customer_addr,note,added_time,status)values(?,?,?,?,?)";
try{
PreparedStatement psprimary=conn.prepareStatement(sqlprimary);
PreparedStatement ps=conn.prepareStatement(sq1);
ps.setString(1,bookstore.getCustomername());
ps.setString(2,bookstore.getCustomeraddr());
ps.setString(3,bookstore.getNote());
// ps.setInt(4,bookstore.getBookamt());
ps.setString(4,bookstore.getAddedtime());
ps.setString(5,bookstore.getStatus());
ps.execute();
psprimary.setString(1,bookstore.getBookname());
psprimary.setInt(2,bookstore.getBookcount());
psprimary.execute();
}catch(Exception e){
e.printStackTrace();
}
}
我运行时就出错了,两张表一条记录都没增加我知道是ps.execute();和psprimary.execute();的问题,具体该怎么样实现我的功能谢谢了.

解决方案 »

  1.   

    这个和COMMIT没关系吧 ~~只有用到事务时才需要提交~~如HIBERNATE里面经常出现
    你这个插不进去 贴一下报的社么错
      

  2.   

    ps.execute();
    执行这一句时,connection就已经关闭了
      

  3.   

    我晕了 我的这个就用到事务处理了,两张表要不同时添加一条记录要不都不增加.
    恩忘了说下,我在sql server里把t_order和t_order_item表关联了(通过order-id)
    若关联去掉就可以正常执行了.
    我就想在这段代码里用事务处理.
      

  4.   

    ps.execute();
    执行这一句时,如果是autocommit的话,connection就已经关闭了
      

  5.   

    楼上的 connection是不会关闭的
    除非我用conn.close();
      

  6.   

    不好意思,记错了
    你要显示设置conn.setAutoCommit(false);//默认情况下,autocommit为true
    在最后conn.commmit();