Thursday 19 January 2017

What is the advantage of Hibernate over JDBC?

JDBC 
Hibernate 
With JDBC, developer has to write code to map an object model's data representation to a   relational data model and its corresponding database schema.  
Hibernate itself takes care of this mapping using XML filesso developer does not need to write code for this. 
With JDBC, the automatic mapping of Java objects with database tables and vice versa conversion is to be taken care of by the developer manually with lines of code.  
Hibernate provides transparent persistence and developer does not need to write code explicitly to map database tables tuples to application objects during interaction with RDBMS.  
JDBC supports only native Structured Query Language (SQL). Developer has to find out the efficient way to access database.
Hibernate provides HQL that is expressed in a familiar SQL like syntax. Hibernate also supports native SQL statements.  
As table changes or database is changed then it’s essential to change object structure as well as to change code written to map table-to-object/object-to-table. 
If there is change in Database or in any table then the only need to change XML fileproperties.  
In JDBC, mapping between Java objects and database tables is done manually.  
It relieves programmer from manual handling of persistent data, hence reducing the development time and maintenance cost.  
With JDBC, caching is maintained by hand-coding.  
Hibernate, with Transparent Persistence, cache is set to application work space. Relational tuples are moved to this cache as a result of query. Automatic Transparent Persistence allows the developer to concentrate more on business logic rather than this application code.  
In JDBC there is no check that always every user has updated data. This check has to be added by the developer.  
Hibernate enables developer to define version type field to application, due to this defined field Hibernate updates version field of database table every time relational tuple is updated in form of Java class object to that table.

No comments:

Post a Comment