Boa noite pessoal.
Estou com uma duvida em relação a chave primaria. De acordo com os bancos de dados a chave nao pode ser duplicada, ou seja, nao poderia haver 2 entradas com o mesmo valor.
E entao vem minha duvida. Eu queria que quando a pessoa inserisse ou editasse um valor que ja existisse no banco aparecesse a msg falando pro usuario que a chave ja existe e nao poderia ser inserida.
Entretando nao sei como fazer... apenas aparece o erro no java. alguem poderia me dar uma força?
segue o codigo no qual me refiro.
public void actionPerformed(ActionEvent e) {
if(e.getSource()==Atualizar)
{
try
{
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/prol","root", "");
Statement st = con.createStatement();
st.executeUpdate(" update computador set nome ='"+txNome.getText()+"'where nome='"+NomeParam+"'");
st.executeUpdate(" update computador set usuario ='"+txUsuario.getText()+"'where nome='"+NomeParam+"'");
st.executeUpdate(" update computador set configuracao ='"+txConfig.getText()+"'where nome='"+NomeParam+"'");
st.executeUpdate(" update computador set setor ='"+txSetor.getText()+"'where nome='"+NomeParam+"'");
st.executeUpdate(" update computador set proprietario ='"+Proprietario+"'where nome='"+NomeParam+"'");
st.executeUpdate(" update computador set observacao ='"+txObservacao.getText()+"'where nome='"+NomeParam+"'");
modelo.setValueAt(txNome.getText(), row, 0);
modelo.setValueAt(txUsuario.getText(), row, 1);
modelo.setValueAt(txConfig.getText(), row, 2);
modelo.setValueAt(txSetor.getText(), row, 3);
modelo.setValueAt(Proprietario, row, 4);
modelo.setValueAt(txObservacao.getText(), row, 5);
con.close();
}
catch (SQLException sqlex)
{
System.out.println("erro sql "+ sqlex);
sqlex.printStackTrace();
}
Eu fechando a conexao dentro do try, tem algum problema? pq teoricamente estou criando dentro do try tbm, não?
valeu.