首先声明,额是菜鸟,弱弱的问大神一个问题:
    环境:系统采用了分层,但是业务逻辑却写在了Dao层,而事务控制在Service层,(大家应该知道这个Service层基本就是个空架子了)。
    问题:在Dao的方法里边,有对多个数据库表进行修改的操作。这样Service层的事务管理能起到作用吗???
PS:这不是我写的程序,只是忽然间发现自己也很小白,请拍砖,但莫要人身攻击俺~~.问题没啥技术含量 就给20分吧

解决方案 »

  1.   

    可以起到的,关键我想问下dao层代码写哪里了
      

  2.   


    直接和业务逻辑高在一块了,即做逻辑判断又查询数据可能我描述不太清楚,举个例子吧:
    service的方法如
    public void updateMessage(Message m) {
    messageDao.updateMessage(m);
    } 只是进行了Dao的调用其他啥都没做。而在Dao层中需要同时修改两个表的数据,如下:
    public void updateMessage(Message m) {
    //修改第一个表的数据
    String sql1 = "update Message1 set column1 =" + m.getMessage() + " where id=" + m.getId();
    getJdbcTemplate().update(sql1);
    //修改第二个表的数据
    String sql2 = "update Message2 set column2 =" + m.getMessage() + " where id=" + m.getId();
    getJdbcTemplate().update(sql2);
    }而系统中Spring把事务声明在了Service的方法中,这样可以保证多用户访问时候,两个修改是原子性操作码???
      

  3.   

    可以,在进入service方法开启事物,结束service关闭事物,所以中间的dao都处在同一个事物。
      

  4.   

    只要service层里边控制好了就没问题
      

  5.   

    当然起作用了,都是通过调用来的,最后还是会控制到你那个dao的