GeekInterview.com
Series: Subject: Topic:
Question: 8 of 38

What is different between Hibernate and iBatis?

Asked by: siva2baba | Member Since Nov-2007 | Asked on: Apr 28th, 2008

View all questions by siva2baba   View all answers by siva2baba

Showing Answers 1 - 4 of 4 Answers
vdurgesh

Answered On : Jun 23rd, 2008

View all answers by vdurgesh

1. Hibernate works well when you control the data model,
iBatis works well when you need to intergate with an existing database,

2. With IBatis you will get full control on SQL but hibenate deals with relationships of tables.

  
Login to rate this answer.
alkumar2000

Answered On : Aug 13th, 2008

View all answers by alkumar2000

Ibatis is something in between Hibernate and JDBC.
Hibernate provides a way to represent database rows as objects so that developers can easily call create update delete methods on them where Ibatis helps developers in mapping SQL queries in the form of XML files these queries can be mapped to a name and parameters can be passed to them. Now these queries can be accesed as Java objects and can be called by passing parameters.

  
Login to rate this answer.
dhandabani.j

Answered On : Jan 22nd, 2009

View all answers by dhandabani.j

These are the few questions that continuously get asked in most of forums.


Whats really difference between two and really more importantly when should
I use one over the other. Its pretty interesting question because there are
major differences between iBatis and Hibernate.


Within in the java persistence there is no one size, fits all solution. So,
in this case Hibernate which is a de facto standard is used in lot of places.


Let us consider a scenario where Hibernate work great for initial model. Now
Suddenly if you are using stored procedures, well we can do it in Hibernate but
its little difficult; ok we map those, all of sudden we got some reporting type
of queries, those dont have keys have group bys; with some difficulty here we
can use name queries and stuff like that, but now starts getting more
complicated, we have complex joins, yes you can do in hibernate, but we cant do
with average developer. We have SQL that just doesnt work.


So these are some of the complexities. One of the other things I find is, if
am looking at an application that does not work very well with an ORM, aside
from these considerations of using stored procedures, already using SQL, complex
joins. In other words, Hibernate works very well if your data model is well in
sync with object model, because ORM solutions like Hibernate map object to
tables. However, lets suppose data model is not in sync with object model, in
this case you have do lot of additional coding and complexities are entering
into your application, start coming the beyond the benefits of ORM. So, again
all of sudden you are noticing that the flow is gone; our application is
becoming very very complex and developers cant maintain the code.


This is where the model starts breaking down. One size does not fit all. So
this is where I like to use iBatis; as the alternative solution for these type
of situations, iBatis maps results sets to objects, so no need to care about
table structures. This works very well for stored procedures, works very well
for reporting applications, etc,.


Now the question is , does it work well for simple CRUD applications? Well,
it works because what we have to write is sql. Then why not use Hibernate for
that?


You can start see Some of the decision criteria that comes into play. So one
of the other follow on questions that typically get is , can I use both? Thats
really interesting question! because the answer is sure.


But, such a thing will never ever exists is java persistence world. However
we can kind of use both to create this little hybrid. So think of this kind
scenario, we have very large application where Hibernate is working very well
for it, but we have a reporting piece that just is a real nag , its query only ,
so we can do is, we can use iBatis to pull up the queries for reporting piece
and still use Hibernate for all the operational stuff and updates. This model
actually works well, it doesnt break the transactional model, and it doesnt
affect any of the primary & secondary caches with a Hibernate. Its a good
solution.


Use iBatis if



  • You want to create your own SQL's and are willing to maintain them

  • your environment is driven by relational data model

  • you have to work existing and complex schema's


Use Hibernate if



  • your environment is driven by object model and wants generates SQL
    automatically


The message is,



  • One size does not fit all the java persistence and the important to know
    there are other solutions besides the traditional ORMs, and that would be
    iBatis.

  • Both the solutions work well, given their specific domain.

  • Look for the opportunity where you can use both.

Yes  4 Users have rated as useful.
  
Login to rate this answer.
uday.dandu

Answered On : Jul 27th, 2010

View all answers by uday.dandu

In iBatis Java objects are mapped to the result sets. IBatis only maps the Java bean properties to database fields, and it fetches the database results in the form of Java beans based on configuration. In Hibernate Java objects are mapped to the database tables.

iBATIS maps Java Objects to the results of SQL Queries, whereas Hibernate maps Java Objects directly to database tables, traditional Object-Relational Mapping. The benefits of Hibernate are that it automatically generates all the SQL for your and the cache invalidation can be more fine grained. iBATIS is more flexible especially if we are a strong SQL query writer. We have control over exactly how the SQL queries are written.

iBATIS uses Data Mapper Pattern whereas Hibernate uses Active Record Pattern

  
Login to rate this answer.

Give your answer:

If you think the above answer is not correct, Please select a reason and add your answer below.

Related Open Questions

Ads

Connect

twitter fb Linkedin GPlus RSS

Ads

Interview Question

 Ask Interview Question?

 

Latest Questions

Interview & Career Tips

Get invaluable Interview and Career Tips delivered directly to your inbox. Get your news alert set up today, Once you confirm your Email subscription, you will be able to download Job Inteview Questions Ebook . Please contact me if you there is any issue with the download.