Thinking on hiring me?

Please read

Fernando Guillén

a Freelance Web Developer

cabecera decorativa

software development as an artistic expression

Last ID, iBATIS y MySql

Adicto como soy a las claves primarias auto-incrementales en MySql me perseguía el problema de no saber cuál era el ID con el que el último registro había sido insertado.

Esto me obliga a hacer indecorosos malabarismos para conseguirlo: sincronizar el método y solicitar el último ID insertado justo después de la inserción, solicitar la ID del registro por algún otro campo de clave única…

Hoy me dá por googlear un poco y me encuentro con una joyita del 2005 entre los archivos de una lista de correo.

Aquí está la solución para que la propia llamada al ‘insert’ te retorne el ID creado:

Si por ejemplo tenemos esta sentencia ‘insert’ en nuestro fichero de iBATIS:

	<insert
		id="insertSentence"
	>
		insert into
			MY_TABLE (
				FIELD_1,
				FIELD_2
			)
			values (
				#value1#,
				#value2#
			)
	</insert>

Hay que modificarla de esta manera:

	<insert
		id="insertSentence"
	>
		insert into
			MY_TABLE (
				FIELD_1,
				FIELD_2
			)
			values (
				#value1#,
				#value2#
			)
		<selectKey
			resultClass="long"
			keyProperty="ID"
		>
			select LAST_INSERT_ID()
		</selectKey>
	</insert>

Y el ID podrás recogerlo desde la llamada al mapeador de iBATIS:

Long key =
	(Long)
	sqlMap.insert( "insertSentence" );

Ahora soy un poquitín más feliz… espero que tú también.

9 Comments to “Last ID, iBATIS y MySql”
  1. rubén Says:

    Sí señor, yo también soy un poquito más feliz.
    Sólo un comentario: el valor de la keyProperty=”ID”, debe coincidir con el nombre del atributo correspondiente a la columna auto-incremental del objeto que se inserta. Lo digo por copy-pastes apresurados como el que he hecho yo.
    Muchas gracias.

  2. fguillen Says:

    Gracias por la aclaración Rubén ;)

  3. Carlos Says:

    me ha sido muy útil. gracias!

  4. silviuxa Says:

    si, efectivamente muy util, gracias!

    Una pregunta que no tiene mucho que ver con llaves auto-incrementales, tu me podrias aconsejar un poquito para manejar con seguridad mis archivos de configuracion (los xml) y que, en caso de un ataque hackeril no puedan leer el archivo que contiene datos tan preciados como mi servidor de base de datos, contraseña y demás? GRacias nuevamenteeeee

  5. iBATIS vs Hibernate at Javi’s Java Says:

    […] y al principio estaba receloso, porque veía que tenía que bajar siempre hasta la SQL. Ahora lo usan en su empresa y cuando le pregunté por ello me dijo: Tronco… he sufrido mucho con Hibernate […]

  6. suceuse de queues éjaculation à l'intérieur Says:

    Je terminerai de lire ça ce soir

  7. grosse bite xxl télécharger film porno Says:

    Un post vraiment rempli Ԁe maǥnifiqueѕ conseils

  8. porno Says:

    Your style is really unique in comparison to other folks I’ve read stuff from.
    Many thanks for posting when you have the opportunity, Guess I’ll just bookmark this web site.

  9. HomerGGovero Says:

    always i employed to read smaller articles or reviews
    which at the same time clear their motive, and that is also
    happening with this particular article that i am reading at this particular
    place.

    My web site … HomerGGovero

Leave a comment

a Freelance Web Developer is proudly powered by WordPress
Entries (RSS) and Comments (RSS).

Creative Commons License
Fernando Guillen's blog by Fernando Guillen is licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License.