public class LogDAO{
public void addLog()throws Exception(){
...这里执行日志的插入操作
}
}
public class UserDAO{
public void addUser(User user)throws Exception(){
...这里执行用户插入操作
}
}
public class UserService{
private LogDAO logDAO;
private UserDAO  userDAO ;
public String saveUser(User user)throws Exception{
try{
logDAO.addLog();
userDAO .addUser(User user);
}catch(){
1.记录日志信息
2.执行rollback
3.抛出异常
}finally{
..执行后续处理操作
}
}
}

解决方案 »

  1.   

    我也是这样弄的,但是为什么只能执行第一个dao,第二个不能执行呢?
    public void examfinish(int rid, ExamRoom examRoom,String pid) {
    // TODO Auto-generated method stub
    String quekao = null;
    String beizhu = null;
    try {
    quekao = java.net.URLDecoder.decode(examRoom.getQuekao(), "UTF-8");
    beizhu = java.net.URLDecoder.decode(examRoom.getBeizhu(), "UTF-8");
    } catch (UnsupportedEncodingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    examRoom.setBeizhu(beizhu);
    examRoom.setQuekao(quekao);
    try {
    examDao.examfinish(rid, examRoom);
    examDao.paperfinish(pid);
    } catch (Exception e) {
    // TODO: handle exception
    }

    }
    下面这个是第二个dao
    public void paperfinish(String pid) {
    // TODO Auto-generated method stub
    Paper pap = (Paper) sessionFactory.getCurrentSession().load(Paper.class, pid);
    pap.setExamstate(1);
    sessionFactory.getCurrentSession().update(pap);
    }
      

  2.   

    打断点调试,
    catch (Exception e) {
    // TODO: handle exception
    }
    这里面加上  e.printStackTrace();
    看看异常信息。