The primary reason is that with DAOs you have end up with a large amount of tedious and error-prone JDBC code to write. An ORM tool saves all that. Secondary reasons are that you can more easily be independent of a specific RDBMS, and that you reduce the number of developers on your project who need a thorough understanding of SQL.
Also note that the DAO pattern and Hibernate are not mutually exclusive. You can very well use the DAO pattern to hide from your application code the fact that you've implemented "UserDAO" using Hibernate and not, say, raw JDBC.
another good reason to an ORM solution is ease of maintenance. It's a lot easier to change a single XML mapping file if you need to tweak your database schema rather than go back and find, modify, and debug all your hand-written SQL statements if you're using DAOs.
And you'll get all of the benefits of hibernate with a JDO implementation, except that JDO has multiple open source and commercial implementations, and is based on a <strong>standard</strong> rather than providing a single-vendor (i.e. proprietary) API.
cheers,
Dave
Dave Clark<br />Senior WebSphere Architect<br /><a href="http://www.versant.com" target="_blank" rel="nofollow">Versant Open Access - JDO2 & EJB3</a>