Currently my company is using “IBATIS” and pure “SQL”s as database persistence mechanism. I like SQL query very much, especially in tuning, but i just do not like code all SQL query in Java application, it’s easy hit typo error and what a stupid and tedious job? I decided to propose a O/R mapping mechanism (Hibernate )as our new java database persistence mechanism
Why we need O/R mapping?
1) Productivity – It helps developer get rid of writing complex and tedious SQL statement, developer no more need of JDBC APIs for result set or data handling. It makes developer more concentrate on the business logic.
2) Maintainability – It helps reduce lines of code, it makes system more understandable. It emphasizes business logic rather than persistence work (SQLs). More important, a system with less code is easier to refactor.
3) Portability – 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)
Here are some Popular Open Source Persistence Frameworks in Java
3) Oracle Top Link
5) Open JPA
I do not want to compare every O/R or non O/R persistence mechanism individually, it may spent more than one month include into research and hand-on practice. Base on my personal humble opinion, I will choose Hibernate as the best O/R mapping persistence mechanism over the others tools.
Reason of choosing Hibernate
1) It provides all above O/R benefits. (Productivity, Maintainability, Portability).
2) It is free and open source – Cost Effective
3) The learning curve is short. It is totally object orientated concept, it will shorted our learning curve.
4) “Hibernate tools” provided by community helps developer generate or develop application very fast and easy. (Eclipse’s Plugin & Code generation tools)
5) It is popular, when we goes wrong with it, we can easily find the answer from Google. In addition, there are many books, communities and forums to support it.
6) Java Market need It, demand of Hibernate’s developer is increasing and definitely more then the others tools. This working experience definitely add advantages on our resume for the next jump.