Como que eu faço um tratamento de exceção sql, para não deixar que o usuário digite um código da conta, que já exista!
Não pode ser gerado automaticamente no banco.
acho q eu try catch resolve. mas não sei onde colocá-lo!
segue o código
String cadastraContas = "insert into tb_planodecontas (pk_cod_conta, descricao, natureza, tipo, dispo_imed, situacao) " +
"values (?,?,?,?,?,?)";
public void cadastrarContas(PlanodecontasValendo planodecontas){
try{
pstm = firebird.conectar().prepareStatement(cadastraContas);
pstm.setString(1, planodecontas.getCodigo());
pstm.setString(2, planodecontas.getDescricao());
pstm.setString(3, planodecontas.getNatureza());
pstm.setString(4, planodecontas.getTipo());
pstm.setString(5, planodecontas.getDisponivel());
pstm.setString(6, planodecontas.getSituacao());
pstm.executeUpdate();
firebird.desconectar();
}catch(Exception e){
e.printStackTrace();
}
}
private void cadastraContas(){
if (tfCodigoConta.getText().trim().equals("")) {
JOptionPane.showMessageDialog(this, "Informe o Código da Conta.");
tfCodigoConta.requestFocus();
} else if (tfDescricaoConta.getText().trim().equals("")) {
JOptionPane.showMessageDialog(this, "Informe a Descrição da Conta.");
tfDescricaoConta.requestFocus();
} else if (cbNatureza.getSelectedItem() == null) {
JOptionPane.showMessageDialog(this, "Informe a Natureza da Conta.");
cbNatureza.requestFocus();
} else if (cbTipo.getSelectedItem() == null) {
JOptionPane.showMessageDialog(this, "Informe o Tipo da Conta.");
cbTipo.requestFocus();
} else if (cbDisponibilidade.getSelectedItem() == null) {
JOptionPane.showMessageDialog(this, "Informe se a Conta representa um recurso Disponível Imediato.");
cbDisponibilidade.requestFocus();
} else {
PlanodecontasControle pc = new PlanodecontasControle();
PlanodecontasValendo planodecontas = new PlanodecontasValendo();
planodecontas.setCodigo(tfCodigoConta.getText());
planodecontas.setDescricao(tfDescricaoConta.getText());
planodecontas.setNatureza(cbNatureza.getSelectedItem().toString());
planodecontas.setTipo(cbTipo.getSelectedItem().toString());
planodecontas.setDisponivel(cbDisponibilidade.getSelectedItem().toString());
planodecontas.setSituacao(cbSituacao.getSelectedItem().toString());
pc.cadastrarContas(planodecontas);
JOptionPane.showMessageDialog(this, "Nova Conta incluída com sucesso.");
desabilitaCampos();
}
}