Te agradezco por las respuestas y disculpa mi terquedad

y efectivamente haciendo como dices: solo guardar los 2 campos funciona perfecto ya que mi bd esta configurado para autoincrementar.
Pero al navegar por mi tabla persona con boton siguiente y atras me posiciono en un registro "x", y en los 3 campos visualizo los valores... hasta ahi perfecto, cuando trato de agregar un nuevo registro con un boton nuevo los 3 campos hago que esten vacios con un "" y el campo codigo pongo en disable para que la bd de datos ponga un valor por mi y completo 2 campos restantes. Ahí es que me aparece el error ya que se agregó como codigo "" y esas comillas la bd entiende como string y para que esto no ocurra quiero obtener el valor mayor de mi codigo y sumarle 1 numero para agregar.
Código Java:
Ver originaltry{
Conexion conexion = new Conexion();
PreparedStatement instruccion
=conexion.
conexion.
prepareStatement("INSERT INTO \"public\".\"Persona\" VALUES (?,?,?)");
//lo correcto es este si se inserta manualmente un id
instruccion.
setInt(1,
Integer.
parseInt(txt_codigo.
getText()));
//Pero yo quiero obtener el valor maximo de mi id a través de la variable ultimonumero para agregar a mi txt_codigo, pero mi no reconoce ni como string ni como int ese valor obtenido... como soluciono?...
Statement ultimonumero
= conexion.
conexion.
createStatement(); ultimonumero.executeUpdate("SELECT MAX('per_codigo')+1 FROM \"public\".\"Persona\"");
instruccion.
setInt(1,
Integer.
parseInt(ultimonumero.
getText())); instruccion.setString(2, txt_nombre.getText());
instruccion.setString(3, txt_telefono.getText());
instruccion.executeUpdate();
JOptionPane.
showMessageDialog(null,
"Registro Guardado"); bloquear();
JOptionPane.
showMessageDialog(null,
"Problema al guardar"+e
); }
Y disculpen mi terquedad...