iBATIS is a which automates the mapping between databases and objects in Java, .NET, and Ruby on Rails. In Java, the objects are POJOs (). The mappings are decoupled from the application logic by packaging the SQL statements in configuration files. The result is a significant reduction in the amount of code that a developer needs to access a relational database using lower level APIs like and .
Other persistence frameworks such as allow the creation of an object model (in Java, say) by the user, and create and maintain the relational database automatically. iBATIS takes the reverse approach: the developer starts with a SQL database and iBATIS automates the creation of the Java objects. Both approaches have advantages, and iBATIS is a good choice when the developer does not have full control over the SQL database schema. For example, an application may need to access an existing SQL database used by other software, or access a new database whose schema is not fully under the application developer's control, such as when a specialized database design team has created the schema and carefully optimized it for high performance.
On May 21, 2010 the development team forked the code creating a new project called and making new releases there. As a consequence the Apache iBATIS project became inactive and was moved to the in June 2010.