Quando tento incluir um registro com uma ID que já existe no banco, ocorre um erro como é de se esperar.
O problema é que quando clico novamente na opção “Incluir Registro”, não consigo mais inserir nenhum registro nesse banco de dados, seja com ID nova ou não.
public void adicionarRegistro() {
try {
String driver = "org.hsqldb.jdbcDriver";
String url = "jdbc:hsqldb:file:./db/database";
String userId = "sa";
String password = "";
String sqlInsert = "INSERT INTO CLIENTES VALUES (?, ?, ?)";
Class.forName(driver);
Connection connection = DriverManager.getConnection(url, userId, password);
String id = JOptionPane.showInputDialog(null, "Digite a ID do cliente:", "ID", 3);
String nome = JOptionPane.showInputDialog(null, "Digite o NOME do cliente:", "NOME", 3);
String fone = JOptionPane.showInputDialog(null, "Digite o TELEFONE do cliente:", "TELEFONE", 3);
int idInt = Integer.parseInt(id);
String nomeString = nome.toUpperCase();
int foneInt = Integer.parseInt(fone);
PreparedStatement pstm = connection.prepareStatement(sqlInsert);
pstm.setInt(1, idInt);
pstm.setString(2, nomeString);
pstm.setInt(3, foneInt);
int inseriu = pstm.executeUpdate();
if(inseriu != 1) {
JOptionPane.showMessageDialog(null, "Não foi possível inserir o registro! Verifique os valores inseridos.", "Resultado da inserção do registro", 3);
}
else {
connection.commit();
modeloTabela.addRow(new Object[] { idInt, nomeString, foneInt } );
JOptionPane.showMessageDialog(null, "Registro inserido com sucesso!", "Resultado da inserção do registro", 1);
}
pstm.close();
connection.close();
} // Fim try {
catch(ClassNotFoundException cnfe) {
cnfe.printStackTrace();
System.out.println(cnfe.toString());
}
catch(SQLException sqle) {
sqle.printStackTrace();
System.out.println(sqle.toString());
JOptionPane.showMessageDialog(null, "Não foi possível inserir o registro! Verifique os valores inseridos.", "Resultado da inserção do registro", 3);
}
}
O método adicionarRegistro() é chamado toda vez que um clique num botão é acionado.