commit用法请教
我用的是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();的问题,具体该怎么样实现我的功能谢谢了.
------解决方案--------------------用触发器
------解决方案----------------------四中方式:
A: 如楼上所说,用触发器
B: 把两个SQL合并一个SQL后.在数据库中用事务处理(相当于C)
C: 用一个带事务的存储过程执行.
D: 用.net 事务处理机制,来处理这两个SQL.
------解决方案--------------------用触发器,插入一个表的时候,同时触发另一个表的插入操作
------解决方案--------------------如果数据量比较大,建议不要使用触发器。
使用数据库事务处理即可。
------解决方案--------------------