Main advantages of Hibernate over JDBC are as follows:
- Database Portability: Hibernate can be used with multiple types of database with easy portability. In JDBC, developer has to write database specific native queries. These native queries can reduce the database portability of the code.
- Connection Pool: Hibernate handles connection pooling very well. JDBC requires connection pooling to be defined by developer.
- Complexity: Hibernate handles complex query scenarios very well with its internal API like Criteria. So developer need not gain expertise in writing complex SQL queries. In JDBC application developer writes most of the queries.