Posts tagged ‘iBatis’
Descripción de iBatis: ¿Qué es?, ¿para qué sirve?
iBatis es un framework de persistencia para Java, aunque con bastantes diferencias respecto a Hibernate, el gran dominador en este segmento.
La principal diferencia entre iBatis e Hibernate es que iBatis no es un ORM (Mapeo Objeto Relacional). Por lo tanto Hibernate genera el SQL para mapear objetos a tablas de la base de datos, mientras que en iBatis el SQL lo tendremos que escribir nosotros. Si tenemos un modelo de datos (nuestras tablas de BBDD) bastante diferente a nuestro modelo de negocio (nuestras clases Java) Hibernate nos puede dar bastantes dolores de cabeza.
Lo que sí hace iBatis es lo siguiente:
- Ejecuta el SQL escrito por nosotros mediante JDBC[] (Java DataBase Connectivity), por lo que nos olvidamos de los múltiples try/catch.
- Mapea propiedades de objetos a parámetros para las PreparedStatement (sentencias SQL parametrizables).
- Mapea los resultados de una query a un objeto o una lista de objetos.
En esta entrada ahora podría poner un pequeño ejemplo de utilización de iBatis, pero eso es lo que podemos encontrar en la documentación de iBatis en español.
Como resumen de lo que se puede ver en dicah documentación comentar:
- Tendremos un fichero de configuración de iBatis (SqlMapConfig.xml habitualmente) en el que indicaremos algunos parámetros de iBatis (como si está activo el cacheado), el
DataSource
(soporta varios tipos deDataSource
) y los distintos mapeos SQL. - Tendremos al menos un fichero de mapeo xml, en el que se indican las sentencias SQL, los parámetros a mapear o los resultados a mapear.
- Tendremos una clase que implementa
SQLMapClient
que es el interface que contiene los métodos para realizar las sentencias SQL (queryForObject
,queryForList
odelete
entre otros muchos). Esta clase la habremos obtenido medianteSqlMapClientBuilder
.
Otro punto fuerte de iBatis es su integración con Spring. Para trabajar con iBatis integrado en Spring los pasos a seguir serían los siguientes:
- El
DataSource
lo definiremos como un Bean en los archivos de definición de Spring. El resto del SqlMapConfig.xml y los xml de mapeo seguirían igual. - Spring proporciona el
SqlMapClientFactoryBean
ySqlMapClientTemplate
. A la factoría le proporcionaremos el DataSource y al template le proporcionamos la factoría. Ese template es la clase que nos proporciona los mismo métodos que elSQLMapClient
visto anteriormente.
También quiero nomrar en esta entrada a Ibator, que es una herramienta para generar código para iBatis. A partir de una tabla de base de datos es capaz de generar el xml de mapeo, las clases Java que representan al modelo de datos e incluso los DAO (Objetos de Acceso a Datos). Viene incluido un plugin para Eclipse. Aunque no la he utilizado, puede ser una herramienta útil en ocasiones.
Y por último decir que aunque sólo he hablado de iBatis para Java, desde la página del proyecto nos podemos descargar versiones para .Net o Ruby.
Comentarios recientes