我们用两个类来分别操作两张表。public void deleteUser()
{
获取一个连接;
删除一个用户;
关闭连接;
}public void deleteArticle(int userid)
{
获取一个连接;
删除指定用户的文章列表;
关闭连接;
}这时如果要删除一个用户,由于用户与文章表关联,则删除用户前要把该用户对应的文章删除掉,再删除用户。
所以要用到事务如上的方法写下来,是不能满足事务的需求的。那么上述的方法必须怎么改呢?

解决方案 »

  1.   

    可以考虑表之间 设计关联关系 就可以了
    删除1条记录 有关系的也会跟着删除
    或者采用hibernate也有这样的功能
      

  2.   

    两个删除操作放到一个事务里;关键就是用同一个连接,执行完两个删除操作后commit事务应该就可以了。你上面方法用到了两个连接,就是两个事务
      

  3.   


    static Connection conn = null;
    {
      取得conn....
    }
    public void deleteUser() 

    取出上面取到的conn;
    删除一个用户; 
    } public void deleteArticle(int userid) 

    取出上面取到的conn; 
    删除指定用户的文章列表; 
      

  4.   

    将两个放到一起就可以了,因为这样做只是一个事务,不会导致冲突,删除的时候还要注意顺序,先删除外键所在的表,然后在删除主键所在的表,插入的时候则相反,understand?
      

  5.   

    把二個放在一起作事務便于工作便可。
    如果樓主用了spring+hibernate。事務管理那里就更方便點了。