Quote:
Why do not write direct SQL statements using JDBC?
Because this means that you will have to write a lot of code doing all this stuff.
For each new added persistent class you again have to write code handling the persistence of that class
(or you write a own generator doing this, which goes already in direction of building an own persistence framework).
Quote:
and allows to refactor your objects without changing your database or vice versa.
This is also feasible with Hibernate.
Quote:
The article on Wikipedia does not describe any benefit.
Sorry, but then you haven't understand the content of this article/section wery well.
Obviously the benefits are not enlisted there using the 'benefit' word,
but it figures out clearly for example, that a ORM does fill\hydrate the persistent java objects for you with correct data,
when reading a records from database, without that you have to write specific code for that.
Try to build an application where the persistence includes classes using extensions (class-hierarchies) and relations (aggregations and associations). Try to do it with Hiberante and the same with plain JDBC, so you will understand the difference.
When you navigate for example a relation in Hibernate, then Hibernate does all needed stuff for you (check whether the associated item(s) are already cached, execute the proper sql against the db to get the associated items etc.), with plain JDBC you have to write a lot of code there.