stringtranslate.com

Apache iBATIS

iBATIS es un marco de persistencia que automatiza el mapeo entre bases de datos SQL y objetos en Java, .NET y Ruby on Rails. En Java, los objetos son POJO ( Objetos Java antiguos y simples ). Las asignaciones se desacoplan de la lógica de la aplicación empaquetando las declaraciones 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 nivel inferior como JDBC y ODBC .

Otros marcos de persistencia, como Hibernate, permiten la creación de un modelo de objetos (en Java, por ejemplo) por parte del usuario y crean y mantienen la base de datos relacional automáticamente. iBATIS adopta el enfoque inverso: el desarrollador comienza con 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, es posible que una aplicación necesite 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 de la aplicación, como cuando un equipo de diseño de base de datos especializado 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 realizando nuevos lanzamientos allí. Como consecuencia, el proyecto Apache iBATIS quedó inactivo y se trasladó a Apache Attic en junio de 2010.

Uso

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

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

Luego se puede recuperar un nuevo objeto Producto Java de la base de datos para el producto número 123 de la siguiente manera:

 Resultado del productoProducto = ( Producto ) sqlMapClient . queryForObject ( "obtenerProducto" , 123 );     

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

Disponibilidad

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

El marco está actualmente disponible en versiones 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, la atención se centró en el desarrollo de soluciones de software criptográfico. El primer producto lanzado por iBATIS fue Secrets, [1] una herramienta de firma y cifrado de datos personales muy parecida a PGP. Secrets se escribió íntegramente en Java y se publicó bajo una licencia de código abierto.

Ese año Microsoft publicó un artículo [2] para demostrar que su reciente marco .NET 1.0 era más productivo que Java . Con ese propósito, Microsoft construyó su propia versión de la Web "Pet Store" 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 también podía hacerlo logrando una arquitectura mejor 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 utilizó 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 manteniendo las mismas características. Clinton donó el nombre y el código de iBATIS a Apache Software Foundation y el proyecto permaneció en la ASF durante seis años.

Finalmente, iBATIS DAO quedó obsoleto, considerando que había mejores marcos DAO disponibles, 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 se retiró y se trasladó a Apache Attic.

Ver 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 desde el original (PDF) el 21 de octubre de 2013 . Consultado el 8 de septiembre de 2013 .
  4. ^ Anuncio de JPetStore 1.0 en TheServerside.com
  5. ^ Anuncio de iBATIS 2.0
  6. ^ El equipo del proyecto iBATIS pasa al código de Google

Bibliografía

enlaces externos