Hello, My group currently uses iBATIS with several 'from scratch' data models. We used Hibernate as an experiment on one data model before settling on iBATIS for everything. What I would say about the two is that if you don't know SQL and you don't want to know about SQL and you have large data sets and high performance isn't a concern, use Hibernate 3 with annotations. Out of the box Hibernate is very easy for Java programmers to use, as it shields you from knowing anything about your database other than as a object->table data store. However, if you know SQL and want a high degree of control over what SQL gets used against your database, or you have large data sets, or high performance is a concern, use iBATIS. I am very comfortable with SQL and could not stand not knowing exactly what Hibernate would do at runtime. I didn't like the fact that I spent more of my time reverse-engineering Hibernate's behavior and tweaking it's configuration than writing the exact SQL that I wanted to run at that exact point in the code. It went something like "Hey, I need this SQL statement right here...I wonder how I tweak the annotation to get that to happen?" over and over again. It's entirely possible to write raw SQL in Hibernate, but then what's the point? Plus you have to consider all the caches and data synchronization issues. Hibernate is really an object view of the world with a database behind it...I guess I see the database model and performance as a higher priority than working with a "correct" OO API.
Really, I tend to think of Hibernate as an ORM and iBATIS as a full-featured JDBC wrapper. I've also used iBATIS with old crufty data models and it is absolutely better than hibernate because you can wedge in all kind of crazy into the SQL with ease. Another group in the company started and stuck with Hibernate with a "from scratch" data model for their project because it had no impact on the start of their project. They just wrote up a schema and they were off an running. It was great up until they started running into production scalabilty issues because they had no idea what was going on, up until then it had "just worked". So they had to do some emergency work to change their code to get Hibernate to scale and peform. They have since decided to switch to iBATIS and take a little more of a hit up front. Being able to hand of the SQL map to a DBA and say "Here's the SQL we use" is huge. Anyway, that's my experience. Everybody is different. Download them both, wire them up against the database and see what you like. Oh, and if you go with iBATIS, I would highly recommend Spring's SqlMapTemplate and DAOs. Also take a look at Abator, which can provide a bunch of boilerplate CRUD work if you want or at a minimum can show you some good iBATIS techniques. Cheers, topher -----Original Message----- From: Ron Chan [mailto:[EMAIL PROTECTED] Sent: Fri 12/15/2006 5:10 PM To: user-java@ibatis.apache.org Subject: ibatis v hibernate there's a lot of "advice" around that says hibernate is better when you have complete control of the data model, and ibatis is better when you are working on an existing database i would like to hear from people who has had good experiences with ibatis even though they are creating the data model from scratch, and how they feel it's been better for them than using hibernate thanks Ron -- View this message in context: http://www.nabble.com/ibatis-v-hibernate-tf2830264.html#a7901667 Sent from the iBATIS - User - Java mailing list archive at Nabble.com.
<<winmail.dat>>