Hibernate vs MyBatis

15 May 2013 | java, ORM, hibernate, myBatis

Comparison of MyBatis versus Hibernate

I’ve often heard people arguing about whether Hibernate is better or MyBatis. The truth is, “there is no spoon.” It is not about whether Hibernate is better or MyBatis, but which of these tools best fits your situation. Without further ado, here is a comparison.

*Disclaimer: This is my personal (and humble) opinion. Some databases were irremediably harmed in the forming of these views.*


It is primarily a data mapper with a database-centric view of things. You map result sets to objects without giving a rat’s rear-end about whether that data came from single/multiple tables, stored procs etc.



When to Use:


This is primarily an Object-Relational Mapper with an object-centric view of the world. In other words, it maps your object model to database tables with relatively little effort from your side (if the object model is in sync with data model).



When To Use:

comments powered by Disqus

Older · View Archive (11)

Why ORM?

Why use ORM?

The path to coding Nirvana is a long one. As you navigate these treacherous ways, you’ll find many corpses – of people who have died of SQL over-injection or of Object-Relational-Miscarriage. For those of you who’ve been doing object-relational stuff long enough and have scars in unmentionable places, go back to your drinks. For the rest of you, for whom ‘Why ORM?’ is an interview question, gather around and warm your toes by the electric light.


Hibernate Custom UUID generator

Use a custom uuid generator in Hibernate.

Many web applications these days use UUIDs as primary keys in their database. While this approach has its pros and cons (see Primary Keys vs GUIDs), one of the principal advantages is that you can generate these ids outside of the database.