Why i choose Hibernate for my project?
Currently my company is using IBATIS and pure SQLs as database persistence mechanism. I like SQL query very much, especially in tuning, but i do not like to write all SQL statement in Java application, it’s easy to hit typo error and what a stupid and tedious job?
Finally my company has a new project come in, and this is the right time to propose Hibernate as our new java database persistence mechanism tool. In order to persuade my boss to accept the Hibernate as the new project consideration, i have to highlight the benefits and advantages of Hibernate.
Why O/R mapping?
It helps developers get rid of writing complex and tedious SQL statement, no more need of JDBC APIs for result set or data handling. It makes developers more concentrate on the business logic and increase the project’s productivity.
It helps reduce the lines of code, makes system more understandable and emphasizes more on business logic rather than persistence work (SQLs). More important, a system with less code is more easier to refactor.
It abstracts our application away from the underlying SQL database and sql dialect. Switching to other SQL database requires few changes in Hibernate configuration file (Write once / run-anywhere).
Boss : well, sound interesting tool to me. (actually , i do not know what are you talk about) is there any others O/R mapping tools or database persistence mechanism that did same thing like Hibernate?
Me : Yes,Boss, it does exits, however i need to tell you , why i choose Hibernate over the others.
Why choose Hibernate over the others?
Popular Open Source Persistence Frameworks in Java
1. Hibernate – http://www.hibernate.org/
2. EJB3 – http://java.sun.com/products/ejb/index.jsp
3. Oracle Top Links – http://www.oracle.com/technology/products/ias/toplink/index.html
4. Cayenne – http://cayenne.apache.org/
5. Open JPA – http://openjpa.apache.org/
6. IBATIS– http://ibatis.apache.org/javadownloads.cgi
7. JPOX – http://www.jpox.org/
I do not want to compare every O/R or non O/R persistence mechanism individually, it may spent more than a year in research and hand-on practice comparative. Base on my personal humble opinion, I will choose Hibernate as the best O/R mapping persistence mechanism over the other tools.
Reason of choosing Hibernate
1. Productivity, Maintainability, Portability
Hibernate provides all above O/R benefits. (Productivity, Maintainability, Portability).
2. Free – Cost Effective
Hibernate is free and open source – Cost Effective
3. Learning curve is short
Since we all have working experience in using Hibernate, and Hibernate is totally object orientated concept, it will shorted our learning curve.
4. Code generation tool
Hibernate tools provided by community helps developer generate or develop hibernate application very fast and easy. (Eclipse’s Plugin & Code generation tools)
Hibernate is popular, when we goes wrong with Hibernate, we can easily find the answer from Google. In addition, there are many books, communities and forums on Hibernate.
Me: Hi Boss, hi, hi, are you listening?
Boss : …yes, yes, i get what you means.
Boss : Since you listed out so many benefits, it’s open source and free, i will support you , just remember do not delay the delivery date.
Me : …… (free…delivery date…this is boss) Thanks Boss… you are Great!
Here’s one more advantage of using Hibernate that i didn’t inform my boss. May be i add it as number 6.
6) Market demand it
Java Market need Hibernate developer, demand of Hibernate developer is in decent growth and compare to the other tools. Hibernate working experience definitely add advantages for my next jump. Do you think i should inform my boss? :)
Hibernate tools (Eclipse Plugin & Code Generation)
1. Is Hibernate the best choice?
2. Hibernate VS TopLink VS CMP
3. Hibernate vs EJB 3.0 persistence
4. Pros and Cons of Hibernate vs JDO vs EJB3 based persistence new J2EE app to build
5. iBATIS vs Hibernate – What causes one to be choosen over the other?
6. Open Source Persistence Frameworks in Java