Hibernate Vs. JDBC ( A comparison)

By: Emiley J. Emailed: 1642 times Printed: 2111 times    

Latest comments
By: rohit kumar - how this program is work
By: Kirti - Hi..thx for the hadoop in
By: Spijker - I have altered the code a
By: ali mohammed - why we use the java in ne
By: ali mohammed - why we use the java in ne
By: mizhelle - when I exported the data
By: raul - no output as well, i'm ge
By: Rajesh - thanx very much...
By: Suindu De - Suppose we are executing

JDBC stands for Java Database Connectivity allows developers to connect, query and update a database using the Structured Query Language. JDBC API standard provides Java developers to interact with different RDBMS and access table data through Java application without learning RDBMS details and using Database Specific JDBC Drivers.

Hibernate is an Object-Relational Mapping (ORM) solution for JAVA. It is a powerful, high performance object/relational persistence and query service. It allows us to develop persistent classes following object-oriented idiom – including association, inheritance and polymorphism.

Listed below is the comparison chart of difference beetween JDBC and Hibernate 

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 is flexible and powerful ORM solution to map Java classes to database tables. Hibernate itself takes care of this mapping using XML files so 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, i.e. to select effective query from a number of queries to perform same task.  

Hibernate provides a powerful query language Hibernate Query Language (independent from type of database) that is expressed in a familiar SQL like syntax and includes full support for polymorphic queries. Hibernate also supports native SQL statements. It also selects an effective way to perform a database manipulation task for an application.  

Application using JDBC to handle persistent data (database tables) having database specific code in large amount. The code written to map table data to application objects and vice versa is actually to map table fields to object properties. As table changed or database changed then it’s essential to change object structure as well as to change code written to map table-to-object/object-to-table. 

Hibernate provides this mapping itself. The actual mapping between tables and application objects is done in XML files. If there is change in Database or in any table then the only need to change XML file properties.  

With JDBC, it is developer’s responsibility to handle JDBC result set and convert it to Java objects through code to use this persistent data in application. So with JDBC, mapping between Java objects and database tables is done manually.  

Hibernate reduces lines of code by maintaining object-table mapping itself and returns result to application in form of Java objects. 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. It improves performance if client application reads same data many times for same write. 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. So if two users retrieve same tuple and then modify it and one user save this modified tuple to database, version is automatically updated for this tuple by Hibernate. When other user tries to save updated tuple to database then it does not allow saving it because this user does not have updated data.  


Hibernate Home | All Hibernate Tutorials | Latest Hibernate Tutorials

Sponsored Links

If this tutorial doesn't answer your question, or you have a specific question, just ask an expert here. Post your question to get a direct answer.



Bookmark and Share

Comments(14)


1. View Comment

There is no comparison of performance in the article. Speed and how much resources would be interesting to compare. How effictive are the generet SQL in Hibernate compared to hand written SQL made by an skilled DBA?

View Tutorial          By: Tomas at 2010-01-17 05:53:48
2. View Comment

Artical is good but it is not clearly define that which one is fast, hibernate or jdbc.

View Tutorial          By: Rohit Saxena at 2010-09-02 04:00:11
3. View Comment

From the last 2 year. i'm working on hibernate framework... I don't see any advantage other than less coding. Those who doesn't know how to reuse the code and OOPs concept its a handy tool... Then its always n obvious that JDBC is faster than hibernate (if u really work on API and caching), under the hood hibernate uses JDBC. Obviously we can use hibernate as a refined framework which already handled all those plumping works for us. There is disadvantages like, hard to understand, debug and maintain, DAO layer go out of the focus, so developer get the feeling of writing business logic at any where (if there is no internal framework or coding standard )... That will reduce the scope of code re usability. So its always better to have a custom framework over hibernate...

View Tutorial          By: nick at 2011-01-03 02:11:48
4. View Comment

Hibernate with annotations and QBE api reduced our coding efforts by 70%. Its the best ORM tool to use. A little steep learning curve but well worth the effort.

View Tutorial          By: Andrew at 2011-04-29 10:34:26
5. View Comment

Hibernate can be an effective framework if one approaches the application design holistically, and full understanding of how the mapping between the Hibernate specification and the actual database with actual data. Otherwise, people may discover to their surprise that the application falls flat on its face during actual use. Hibernate generates the necessary queries methodically. If the object hierarchy defined is complex, a simple operation may result in hundreds of SQL queries actually getting executed, possibly bringing the database server down to its knees. Be extra careful with any one-to-many relationship. Even lazy fetching strategy might not save the application.

View Tutorial          By: Giao Vu at 2011-08-03 23:40:02
6. View Comment

Hi i am sanjay ,
I got the exact difference between jdbc and hibernate.
thanks a lot to you...........


View Tutorial          By: Sanjay Patel at 2012-05-06 11:36:00
7. View Comment

Thank you for good explanation. I am thinking of using hibernate in my next project. This article helped a lot.

View Tutorial          By: Darshan at 2012-06-22 15:44:57
8. View Comment

This is just Great, didn't find anything like this before. Its point to point and very explanatory. And I personally liked the last one.(Version in Hibernate)
Though it misses in performance comparison, like time taken to execute 50 records in JDBC and in hibernate and then 5000 , etc
But its gr8. thumbs up to the this guy...


View Tutorial          By: Vikrant Verma at 2012-10-07 04:54:42
9. View Comment

great work

View Tutorial          By: Bhaskaran at 2013-01-21 11:23:19
10. View Comment

Good Work ...

View Tutorial          By: Sagan at 2013-08-13 13:38:30
11. View Comment

I really not get your points...
I don't know why you people give so confusing articles.
Too offset...


View Tutorial          By: darshit jain at 2014-05-22 09:07:45
12. View Comment

good but not v.good. it seems the author is big fan of hibernate, no doubt hibernate is great tool but it have cons as well as pros, you only discus pros of hibernate over jdbc. you should also cover some pros by the jdbc also like speed or custom handling etc...

View Tutorial          By: Muhammad Ishaq Awan at 2014-10-29 07:00:44
13. View Comment

Unable to understand all the points, quiet confusing.

View Tutorial          By: KB at 2015-04-15 10:11:14
14. View Comment

sUPER eXPLAnation

View Tutorial          By: Surendra at 2015-06-13 07:23:56

Your name (required):


Your email(required, will not be shown to the public):


Your sites URL (optional):


Your comments:



More Tutorials by Emiley J.
Error generating R.java from manifest
ERROR 1251: Client does not support authentication protocol requested by server; consider upgrading MySQL client
IIS and Tomcat - how to configure to work together
PHP Warning: Unknown(): Unable to load dynamic library '/usr/local/php4/lib/php/extensions/no-debug ......
Adding your own Application icon for your J2ME application (jar file)
Creating Menus in Code using VB.net
Traversing all files in a directory using Ruby
Using Proxy to connect to URLs in Ruby
POST a form in Ruby
Reading URL content using Ruby (HTTP)
dRuby client/server mode sample program
Benchmark module in Ruby
encoding and decoding in Ruby using Base64 Module
Module Abbrev in Ruby
Standard Library Packages in Ruby

More Tutorials in Hibernate
Fetching strategies in Hibernate
equals() and hashCode() in Hibernate
Tuplizers (org.hibernate.tuple.Tuplizer) in Hibernate
EntityNameResolvers in Hibernate
Hi/lo algorithm in Hibernate
Identity columns and sequences in Hibernate
Assigned identifiers in Hibernate
Primary keys assigned by triggers in Hibernate
Formula in Hibernate
Step by Step Hibernate - Your First Hibernate Application
A sample Hibernate Web Application using Servlets
Some Basic APIs in Hibernate
Contextual sessions in Hibernate
Programmatic configuration in Hibernate
SessionFactory in Hibernate

More Latest News
Most Viewed Articles (in Hibernate )
Hibernate Vs. JDBC ( A comparison)
Fetching strategies in Hibernate
A sample Hibernate Web Application using Servlets
Step by Step Hibernate - Your First Hibernate Application
Types of inheritence models in Hibernate
Download Hibernate latest version
Creating Connection Pool for JDBC Connections in Hibernate
Tutorial Using the Java Persistence API (JPA) in Hibernate
Identity columns and sequences in Hibernate
Primary keys assigned by triggers in Hibernate
What is component mapping in hibernate?
Programmatic configuration in Hibernate
Hibernate Configuration Properties
Hibernate Cache Properties
Tuplizers (org.hibernate.tuple.Tuplizer) in Hibernate
Most Emailed Articles (in Hibernate)
Types of inheritence models in Hibernate
Hibernate Configuration Properties
What is component mapping in hibernate?
Download Hibernate latest version
Some Basic APIs in Hibernate
SessionFactory in Hibernate
Hibernate JDBC and Connection Properties
equals() and hashCode() in Hibernate
Formula in Hibernate
Hibernate Vs. JDBC ( A comparison)
Paging Through the Result Set in Hibernate
Tutorial Using the Java Persistence API (JPA) in Hibernate
A sample Hibernate Web Application using Servlets
Contextual sessions in Hibernate
Programmatic configuration in Hibernate