title: Best practice for DAO pattern?
body: <p>I've seen a lot of codes use a service-dao pattern , I don't know the origin of this pattern . It force the front layer call service  , then delegates some of the service task to dao.</p>
  
  <p>I want to ask : </p>
  
  <ol>
  <li>Does DAO layer do purely data access related task ? What about things like exception encapsulation? </li>
  <li>Is there any other pattern can be used to replace this or better than this ? </li>
  <li>I think pojo domain models and transaction scripts  make even simple problem became complicated  , is it possible to completely eliminate dao layer ?</li>
  </ol>