There is some discussion on that page of iBATIS and it's relationship to Hibernate that seems inaccurate to me (I mean besides that it is talking about iBATIS being an ORM tool).

While iBATIS does involve a lot more SQL work than Hibernate and a lot less conceptual understanding, I would not say that it "leaves you to solve more of your own problems".

In my experience with the two, I found that iBATIS does leave you to deal with object identity and concurrent updates on your own...but that is about it in terms of things that Hibernate does for you.

You do have to write your own SQL, but when it comes to mapping an *existing* database to an object model, iBATIS wins hands-down *because* of that.

This quote: "iBATIS basically seems to be about mapping a ResultSet to an object, and nothing else. Hibernate is more concerned with the hard problems: caching and connection pooling" is a bit insulting and totally inaccurate. Out-of-the-box, iBATIS includes tools to do all of that.

This quote is also a bit misleading: "representing relationships between entities in a very flexible and customizable way". Again, in my experience using Hibernate on a very large project with an existing database, I found that the amount of coding and configuration with Hibernate made it almost unusable, and totally infeasible. For example, one part of the application was written with Hibernate, and took 15 *minutes* to load, we rewrote it with iBATIS (and a stored procedure) and got it under 10 seconds...that is flexible and customizable. :-)

"iBATIS appears to be mostly about avoiding the effort of writing repetitive glue code from JDBC" - partially true...

"Hibernate is about abstracting away from JDBC and treating data according to the object model instead." - partially true again....

iBATIS tool is changing, and becoming a more general purpose data mapping tool. While in its current incarnation, it is primarily used for SQL (I have used the iBATIS DAO layer for LDAP, too) the next release will be much more pluggable in terms of the data source - JDBC, LDAP, MP3 files on a file system, whatever. I think I would say iBATIS is more about  mapping queries to objects, and at the same time, Hibernate ONLY works with JDBC.

Reading this, I was reminded of the work that we have in front of us. People still see iBATIS in the same space as ORM, and that is just so not true.

Larry


Reply via email to