miércoles, diciembre 24, 2008

¿Cómo recuperar el último índice (last_insert_id) introducido en Oracle usando iBatis?

Han sido varias las ocasiones en las que he utilizado iBatis como "aislante" de la base de datos. Lo considero una buena herramienta y procuro utilizarlo siempre que puedo aunque sólo sea para mantener las consultas a base de datos "limpias" y separadas del código.

Pues bien, hasta ahora sólo lo había utilizado con MySql. Pero en el proyecto en el que estoy lo estamos utilizando con Oracle.

Como buen aislante que es, no existen grandes diferencias de uso. Pero hoy me he encontrado con una. El motivo de este post.

iBatis tiene un "mecanismo" por el cual se nos permite recuperar el último id generado para la inserción de un registro. Esto, en MySql, se consigue de la siguiente manera:


<insert id="insert" parameterclass="producto">
<selectkey resultclass="java.lang.Integer" keyproperty="idProducto">
select last_insert_id() as value
</selectkey>
insert into Producto (idProducto, nombre)
values (#idProducto#, #nombre#)
</insert>

Pero cuando llegas a Oracle y su mundo_sin_autonuméricos tienes un problema. Debemos usar las secuencias. La solución es bastante fácil, por eso la encontré rápido :D Es esta:


<insert id="insert" parameterclass="producto">
<selectkey resultclass="java.lang.Integer" keyproperty="idProducto">
select s_prod.NEXTVAL as "idProducto" from dual
</selectkey>
insert into Customer (idProducto, nombre)
values (#idProducto#, #nombre#)
</insert>

Como podemos ver, la solución no difiere mucho de la presentada para MySql.

Espero que te ayude.

Por cierto, la información completa la puedes consultar en la Wiki de iBatis

martes, julio 08, 2008

Aradne, programación y desarrollo de aplicaciones

Hola a todos,

Aradne es proyecto creado por unos cuantos profesionales de la programación que hemos apostado por un desarrollo de calidad a precios competitivos y por darnos la oportunidad de gestionar un modelo distinto de negocio.

Inicialmente enfocamos nuestro negocio hacia las PYMES y los profesionales que no pueden contratar los servicios, aunque estamos abiertos a trabajar para grandes empresas que requieran del conocimiento de profesionales que suman decenas de años de experiencia.

Contamos en nuestras filas con personas que tienen experiencia en análisis, programación, maquetación y gestión de proyectos.

Nuestros servicios incluyen consultoría (trabajar en las instalaciones del cliente), desarrollos a medida y cualquier tipo de servicio que tenga que ver con la programación, análisis y desarrolo de software.

Desarrollamos principalmente usando el lenguage de programación Java, aunque esto no es una limitación.

Somos especialistas en:

  • Desarrollo de aplicaciones J2EE sobre servidores GlassFish, WebSphere y JBoss.
  • También desarrollamos aplicaciones sobre servidores Tomcat.
  • Gestión de contenidos con OpenCMS.
  • Gestión de contenidos con Joomla!.
  • Rich Internet Applications.
  • AJAX y Web 2.0.
  • Desarrollos Java en general.

Si desea contactar con nosotros puede hacerlo escribiendo a nuestra dirección de correo info@aradne.com.

También puede contactar mediante el formulario de contacto en nuestra web: http://www.aradne.com/contact.htm.

Contacte con nosotros sin compromiso. Buscaremos la mejor solución para sus necesidades de negocio, a un precio muy asequible y sin renunciar a la calidad.

Por último, agradecer a nuestros a migos de FiTe la oportunidad de presentarnos mediante su blog.

Un saludo,

El Equipo de Aradne.

(P.D.: Buscamos inversores. Si está interesado, por favor, contacte con nosotros)