iBATIS is a persistence framework which automates the mapping between SQL databases and objects in Java, .NET, and Ruby on Rails. The mappings are decoupled from the application logic by packaging the SQL statements in XML configuration files.
iBATIS is a lightweight framework and persistence API good for persisting POJOs( Plain Old Java Objects).
iBATIS is what is known as a data mapper and takes care of mapping the parameters and results between the class properties and the columns of the database table.
A significant difference between iBATIS and other persistence frameworks such as Hibernate is that iBATIS emphasizes the use of SQL, while other frameworks typically use a custom query language such has the Hibernate Query Language (HQL) or Enterprise JavaBeans Query Language (EJB QL).
iBATIS comes with the following design philosophies −
Simplicity − iBATIS is widely regarded as being one of the simplest persistence frameworks available today.
Fast Development − iBATIS does all it can to facilitate hyper-fast development.
Portability − iBATIS can be implemented for nearly any language or platform such as Java, Ruby, and C# for Microsoft .NET.
Independent Interfaces − iBATIS provides database-independent interfaces and APIs that help the rest of the application remain independent of any persistence-related resources.
Open source − iBATIS is free and an open source software.
iBATIS offers the following advantages −
Supports stored procedures − iBATIS encapsulates SQL in the form of stored procedures so that business logic is kept out of the database, and the application is easier to deploy and test, and is more portable.
Supports inline SQL − No precompiler is needed, and you have full access to all of the features of SQL.
Supports dynamic SQL − iBATIS provides features for dynamically building SQL queries based on parameters.
Supports O/RM − iBATIS supports many of the same features as an O/RM tool, such as lazy loading, join fetching, caching, runtime code generation, and inheritance
iBATIS makes use of JAVA programming language while developing database oriented application. Before proceeding further, make sure that you understand the basics of procedural and object-oriented programming − control structures, data structures and variables, classes, objects, etc.
To understand JAVA in detail you can go through our JAVA Tutorial.