Como recuperar el id y obtener el nexVal con JDBC Spring???

Que tal comunidad, un saludo. Ya tiene rato que no hacia una pregunta y esta se trata de saber si hay una manera de obtener el id de un objeto despues de guardarlo en bd con el JDBC de Spring. Y tambien si hay una manera de autoincrementar el valor en automatico, y no estar sacando el nextVal con una consulta.

Gracias por su atencion, espero sus comentarios.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

autoincrement

Lo de autoincrementar el valor de la llave pues depende de tu base de datos. En PostgreSQL por ejemplo puedes definir que el tipo de la llave sea SERIAL o BIGSERIAL o con eso se autoincrement. En MySQL creo que hay un tipo autoincrement o algo así que resulta en lo mismo; insertas los datos (excepto PK) y se le asigna una llave.

Para obtener esa llave se debe invocar el método update(PreparedStatementCreator,KeyHolder) de JdbcTemplate, y que el PreparedStatementCreator genere un PreparedStatement con la propiedad RETURN_GENERATED_KEYS, por lo cual necesitas un driver JDBC 3.0 o 4.0.

De lo primero no sé

De lo primero que mencionas no sé si se pueda hacer con jdbc Spring.

De lo de nextval no lo creo, asumo que estas usando Oracle DB, si persistes tus datos con hibernate puedes poner en el properties del documento xml o por anotaciones que el tipo de dato que estas mapeando es una secuencia.

Saludos

Imagen de AlexSnake

Info faltante

Cierto, se me paso comentar que estoy trabajando con ORACLE 11 y efectivamente como bien menciona @ezamudio la manera de obtener el id es con un KeyHolder, ahorita ya ando en ello, en cuanto a el autoincrement lo voy a trabajar con una secuencia de bd pero no se aun como implementarlo.

Y bueno hugo, no estoy ocupando Hibernate sino pues tal vez se me facilitara un poco mas.

Gracias por sus respuestas.

Imagen de AlexSnake

Solución y pregunta.

Bueno pues ya me quedo, aquí la solución por si lo ocupara alguien en un futuro:

 

y aqui los jars:

No mas una pregunta, como puedo hacer para no estar concatenando el Query con signo de más?? habia visto una solucion que era con un ps.setString(1,"valor"); peeero, cuando quiero hacer un nextval me sale un error.

Saludos.

Imagen de ezamudio

en el creator

El SQL debe ser tipo   y en donde creas el PreparedStatement, le pones   (la primera columna es la 1). Te falta también ponerle lo de las llaves generadas al PreparedStatement, es decir, lo debes crear con  .

Imagen de AlexSnake

Sale.

Oks ezamudio, gracias!