iBATIS vs Hibernate
There are major differences between iBatis and Hibernate but both the solutions work well, given their specific domain. Personally I would suggest you should use iBATIS if:
- You want to create your own SQL's and are willing to maintain them.
- your environment is driven by relational data model.
- you have to work existing and complex schema's.
And simply use Hibernate if:
- Your environment is driven by object model and wants generates SQL automatically.
To count there are few differences:
- iBATIS is:
- Faster development time
- Much smaller in package size
- Generates SQL for you which means you don't spend time on SQL
- Provides much more advance cache
- Highly scalable
Other difference is that iBATIS makes use of SQL which could be database dependent where as Hibernate makes use of HQL which is relatively independent of databases and it is easier to change db in Hibernate.
Hibernate maps your Java POJO objects to the Database tables where as iBatis maps the ResultSet from JDBC API to your POJO Objets.
If you are using stored procedures, well you can do it in Hibernate but it is little difficult in comparision of iBATIS. As an alternative solution iBATIS maps results sets to objects, so no need to care about table structures. This works very well for stored procedures, works very well for reporting applications, etc
Finally, Hibernate and iBATIS both are open source Object Relational Mapping(ORM) tools available in the industry. Use of each of these tools depends on the context you are using them. Hibernate and iBatis both also have good support from SPRING framework so it should not be a problem to chose one of them.