- IBATIS
Infobox Software
name = Apache iBATIS
caption =
developer =Apache Software Foundation
latest release version =
latest release date =
latest preview version =
latest preview date =
operating system =Cross-platform
programming language = Java
genre =Persistence Framework
license =Apache License 2.0
website = http://ibatis.apache.orgiBATIS is a persistence framework which automates the mapping between
SQL databases and objects in Java, .NET, and Ruby on Rails. In Java, the objects are POJOs (Plain Old Java Object s). The mappings are decoupled from the application logic by packaging the SQL statements inXML 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 likeJDBC andODBC .Other persistence frameworks such as Hibernate 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 an 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.
Usage
For example, assume there is a database table PRODUCT (PROD_ID "INTEGER", PROD_DESC "VARCHAR(64)") and a Java object com.example.Product (id: "int", description: "String"). To read the product record having the key PRD_ID into a new Product POJO, the following mapping is added into an iBatis XML mapping file:
A new Java Product object can then be retrieved from the database for product number 123 as follows:
In the mapping file example,
#value#
refers to the long integer value passed into the query. If the parameter is a java object, then values from properties on that object can be inserted into the query using a similar#
notation. For example, if the parameter class is acom.example.Product
which has a property calledid
, then#value#
can be replaced with#id#
. ThesqlMapClient
object is an instance of classcom.ibatis.sqlmap.client.SqlMapClient
.Availability
The founder of iBatis has [http://www.clintonbegin.com/2008/02/clintons-java-5-rant.html publicly stated his dismay with Java 5] , but has continued to release new versions of iBatis for Java. Versions 2.3.1 and 2.3.2 came out in April 2008, and 2.3.3 in July. Work is also underway on release 3.0.0, whose features are being discussed [http://opensource.atlassian.com/confluence/oss/display/IBATIS/iBATIS+3.0+Whiteboard here] .
The framework is currently available in Java, .NET, and Ruby (RBatis) versions.
The Apache
iBator tool is closely related: it connects to your database and uses SQL introspection to generate iBatis mapping files and Java classes.ee also
*Hibernate
*EclipseLink
*Spring Framework
*pureQuery References
*
*External links
* [http://ibatis.apache.org/ iBATIS project page at the Apache Foundation]
* [http://ibatis.apache.org/ibator The iBator project at Apache]
Wikimedia Foundation. 2010.