Articulo de referencia

Apache iBATIS

iBATIS es un framework de persistencia que automatiza la asignación entre bases de datos SQL y objetos en Java, .NET y Ruby on Rails. En Java, los objetos son POJO ( Plain Old J...

iBATIS es un framework de persistencia que automatiza la asignación entre bases de datos SQL y objetos en Java, .NET y Ruby on Rails. En Java, los objetos son POJO ( Plain Old Java Objects ). Las asignaciones se desacoplan de la lógica de la aplicación al empaquetar las sentencias SQL en archivos de configuración XML . El resultado es una reducción significativa en la cantidad de código que un desarrollador necesita para acceder a una base de datos relacional utilizando API de bajo nivel como JDBC y ODBC .

Otros frameworks de persistencia, como Hibernate, permiten al usuario crear un modelo de objetos (en Java, por ejemplo) y crear y mantener automáticamente la base de datos relacional. iBATIS adopta el enfoque inverso: el desarrollador parte de una base de datos SQL e iBATIS automatiza la creación de los objetos Java. Ambos enfoques tienen ventajas, e iBATIS es una buena opción cuando el desarrollador no tiene control total sobre el esquema de la base de datos SQL. Por ejemplo, una aplicación puede necesitar acceder a una base de datos SQL existente utilizada por otro software, o acceder a una nueva base de datos cuyo esquema no está completamente bajo el control del desarrollador, como cuando un equipo especializado en diseño de bases de datos ha creado el esquema y lo ha optimizado cuidadosamente para un alto rendimiento.

El 21 de mayo de 2010, el equipo de desarrollo bifurcó el código, creando un nuevo proyecto llamado MyBatis y publicando allí las nuevas versiones. Como consecuencia, el proyecto Apache iBATIS quedó inactivo y fue trasladado a Apache Attic en junio de 2010.

Uso

Por ejemplo, supongamos que existe una tabla de base de datos PRODUCT (PROD_ID INTEGER , PROD_DESC VARCHAR(64) ) y una clase Java com.example.Product (id: int , description: String ) . Para leer el registro del producto que tiene la clave PROD_ID en un nuevo POJO Product , se agrega el siguiente mapeo a un archivo de mapeo XML de iBATIS:

<select id= "getProduct" parameterClass= "java.lang.Long" resultClass= "com.example.Product" > seleccionar PROD_ID como id, PROD_DESC como descripción de PRODUCTO donde PROD_ID = # valor # </select>

A continuación, se puede recuperar un nuevo objeto Java Product de la base de datos para el producto número 123 de la siguiente manera:

Producto resultProduct = ( Producto ) sqlMapClient . queryForObject ( "getProduct" , 123 );

En el ejemplo del archivo de mapeo, #value#se refiere al valor entero largo pasado a la consulta. Si el parámetro es un objeto Java, entonces los valores de las propiedades de ese objeto se pueden insertar en la consulta usando una #notación similar. Por ejemplo, si la clase del parámetro es com.example.Productque tiene una propiedad llamada id, entonces #value#se puede reemplazar con #id#. El sqlMapClientobjeto es una instancia de la clase com.ibatis.sqlmap.client.SqlMapClient.

Disponibilidad

El fundador de iBATIS ha manifestado públicamente su descontento con Java 5 , pero ha seguido lanzando nuevas versiones de iBATIS para Java. Las versiones 2.3.1 y 2.3.2 se publicaron en abril de 2008, y la 2.3.3 en julio.

Actualmente, el framework está disponible en versiones para Java , .NET y Ruby (RBatis). El proyecto jBati es un ORM de JavaScript inspirado en iBATIS.

La herramienta Apache iBator está estrechamente relacionada: se conecta a su base de datos y utiliza sus metadatos para generar archivos de mapeo iBATIS y clases Java.

Historia

En 2001, Clinton Begin inició un proyecto llamado iBATIS. Inicialmente, se centró en el desarrollo de soluciones de software criptográfico. El primer producto lanzado por iBATIS fue Secrets, [ 1 ] una herramienta de cifrado y firma de datos personales similar a PGP. Secrets fue escrito completamente en Java y se lanzó bajo una licencia de código abierto.

Ese año, Microsoft publicó un documento [ 2 ] para demostrar que su reciente framework .NET 1.0 era más productivo que Java . Para ello, Microsoft creó su propia versión de la "Tienda de Mascotas" de Sun, un proyecto web que Sun había utilizado para mostrar las mejores prácticas de Java ( Java BluePrints ). Microsoft afirmó que .NET era 10 veces más rápido y 4 veces más productivo que Java .

En 2002, Clinton desarrolló una aplicación llamada JPetStore [ 3 ] para demostrar que Java podía ser más productivo que .NET y que también podía hacerlo logrando una mejor arquitectura que la utilizada en la implementación de Microsoft .

JPetStore 1.0 tuvo un gran impacto [ 4 ] y la capa de base de datos que usó Clinton atrajo la atención de la comunidad. Pronto, comenzó el proyecto iBATIS Database Layer 1.0, compuesto por dos componentes: iBATIS DAO e iBATIS SQL Maps.

iBATIS 2.0 se lanzó en junio de 2004. [ 5 ] Fue un rediseño completo, aunque conservando las mismas características. Clinton donó el nombre y el código de iBATIS a la Apache Software Foundation , y el proyecto permaneció en la ASF durante seis años.

Finalmente, iBATIS DAO quedó obsoleto, dado que existían mejores frameworks DAO, como Spring Framework .

El 19 de mayo de 2010 se publicó iBATIS 3.0 y, simultáneamente , el equipo de desarrollo decidió continuar el desarrollo del marco en Google Code [ 6 ] bajo un nuevo proyecto llamado MyBatis .

El 16 de junio de 2010, Apache anunció que iBATIS había sido retirado y trasladado al Apache Attic.

Véase también

Referencias

  1. Secretos de iBATIS
  2. Pelea de gatos en una tienda de mascotas: J2EE vs. .NET
  3. "JPetStore 1.0" (PDF) . Archivado del original (PDF) el 21/10/2013 . Consultado el 08/09/2013 .
  4. Anuncio de JPetStore 1.0 en TheServerside.com
  5. Anuncio de iBATIS 2.0
  6. El equipo del proyecto iBATIS se traslada a Google Code

Bibliografía

  • Begin, Clinton; Brandon Goodin; Larry Meadors (17 de enero de 2007). iBATIS en acción (1.ª  ed.). Manning . 384 págs . ISBN  978-1-932394-82-5.
  • Richardson, Chris (23 de enero de 2006). POJOs en acción (1.ª  ed.). Manning . 456 págs . ISBN  1-932394-58-3.
  • Sitio web oficialEdita esto en Wikidata