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
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);
}