Buscar
Social
Ofertas laborales ES

Foro sobre Java EE > Obtener valor max de jTxt en java y PostgreSQL

Tengo que obtener el valor maximo de mi columna id para ingresar un valor superior al maximo en un txt_codigo, pero al navegar con .nex y .previous, su valor queda en un numero ya existente y no puedo guardar en mi bd ya que mi id es autonumerico y mi txt_codigo pongo ineditable y si pongo con comillas mi txt_codigo me da error ya que mi id es int.

Este es el formulario que estoy haciendo y me sale ese error si pongo un "" en txt_codigo para desabilitar y hacer automatico mi numeracion.
http://imagizer.imageshack.us/v2/xq90/913/LPAItb.png


try{
Conexion conexion = new Conexion();
PreparedStatement instruccion=conexion.conexion.prepareStatement("INSERT INTO \"public\".\"Persona\" VALUES (?,?,?)");

//En la variable ultimonum intento guardar el ultimo numero que obtengo de mi id pero al setear en la ubicacion 1 me da error por tipo de variable diferente

PreparedStatement ultimonum=conexion.conexion.prepareStatement("SELECT MAX(" per_codigo") AS maximo FROM "\"public\".\"Persona\"");
instruccion.setInt(1, Integer.parseInt(ultimonum.getText()));
instruccion.setString(2, txt_nombre.getText());
instruccion.setString(3, txt_telefono.getText());
instruccion.executeUpdate();

JOptionPane.showMessageDialog(null, "Registro Guardado");
bloquear();
}catch(Exception e){
JOptionPane.showMessageDialog(null, "Problema al guardar"+e);
}

enero 25, 2015 | Registered Commenterroeboy2

Guenas.

Si en tu tabla la ID es un autonumérico lo que deberías hacer es definir la sentencia INSERT de otra manera:

INSERT INTO nombreTabla (NombreCampo2, NombreCampo3) VALUES (?,?)

De esta forma no actualizaras el campo ID y te lo pondra la BD.

Un saludo

enero 28, 2015 | Unregistered CommenterPaposo