Airamzita Posted June 20, 2012 at 11:50 PM Report Share #464502 Posted June 20, 2012 at 11:50 PM Tenho um programa em java com conexão ao mysql e pretendo criar uma colmeia. O que quero fazer é que o jTextField2 seja validado e caso já exista na base de dados mysql, apareça num jOptionPane que aquele nome já existe. Penso que seja com um IF, mas não sei como dizer se o conteúdo da jTextField2 já existe em tal tabela, em tal coluna. Segue o código onde quero inserir: try { Class.forName("com.mysql.jdbc.Driver"); //procura uma classe Connection con; //cria variável con = DriverManager.getConnection("jdbc:mysql://localhost:3306/p12","root",""); //para inserir na bd String query = "INSERT INTO colmeias (ID, Designacao, Ativa) VALUES (NULL, ?, ?)"; PreparedStatement stmt = con.prepareStatement(query); //o comando [ESTE EM BAIXO] stmt.setString(1, jTextField2.getText()); jComboBox1.getSelectedItem(); String value=jComboBox1.getSelectedItem().toString(); stmt.setString(2, value); JOptionPane.showMessageDialog(null, "Nova Colmeia inserida com sucesso!", "Criação de nova colmeia", JOptionPane.INFORMATION_MESSAGE); jTextField2.setText(null); //limpa campo depois de inserir Tentei algo assim: if (jTextField2.getText().equals(Designacao)) { JOptionPane.showMessageDialog(null, "Já existe"); } else { Sendo Designacao o nome da coluna que tem os registos. Dá o erro que o campo Designacao na bd é único (como quero que seja), ou seja, o meu IF não faz nada! Sugestões? 😉 Link to comment Share on other sites More sharing options...
joelbrito Posted June 21, 2012 at 01:26 AM Report Share #464508 Posted June 21, 2012 at 01:26 AM Podes verificar se a designação já existe antes de guardar para a base de dados. Fazes um select na bd pela designação, se o resultset não for vazio é porque já existe. Engenharia de Sistemas Informáticos @ IPCA "Estou convencido de que cerca de metade do que separa os empreendedores de sucesso daqueles malsucedidos é a pura perseverança." - Steve Jobs Link to comment Share on other sites More sharing options...
Airamzita Posted June 23, 2012 at 03:02 AM Author Report Share #465088 Posted June 23, 2012 at 03:02 AM (edited) Olá! Obrigado pela sugestão, no entanto tenho uma dúvida. Como digo que o campo designação tem algo lá dentro? ResultSet rs; stmt.setString(1, jTextField2.getText()); String sql = "SELECT Designacao FROM colmeias"; rs = stmt.executeQuery(sql); if (rs.equals("")) { //meti vazio, mas quero que tenha conteúdo JOptionPane.showMessageDialog(null, "A designação inserida já existe. Por favor, modifique."); } else { Ou o código nem sequer está correto? Edited June 23, 2012 at 03:02 AM by Airamzita Link to comment Share on other sites More sharing options...
joelbrito Posted June 23, 2012 at 01:02 PM Report Share #465106 Posted June 23, 2012 at 01:02 PM ResultSet rs; stmt.setString(1, jTextField2.getText()); String sql = "SELECT Designacao FROM colmeias WHERE Designacao LIKE ' "+jTextField2.getText()+" ' "; // Falta a pesquisa pela designação que está no textfield rs = stmt.executeQuery(sql); boolean existe = false; while(rs.next()){ //Percorre todas as linhas que forem selecionadas na tabela existe = true; //Se não foi encontrado nenhum resultado para a query, esta linha não é executada. Não chega a entrar no ciclo break; //Para o ciclo } if (existe) { JOptionPane.showMessageDialog(null, "A designação inserida já existe. Por favor, modifique."); } else { ... Espero que percebas o que fiz... Engenharia de Sistemas Informáticos @ IPCA "Estou convencido de que cerca de metade do que separa os empreendedores de sucesso daqueles malsucedidos é a pura perseverança." - Steve Jobs Link to comment Share on other sites More sharing options...
Airamzita Posted June 24, 2012 at 03:42 AM Author Report Share #465187 Posted June 24, 2012 at 03:42 AM Percebi tudo excepto isto String sql = "SELECT Designacao FROM colmeias WHERE Designacao LIKE ' "+jTextField2.getText()+" ' "; // Falta a pesquisa pela designação que está no textfield na parte do comentário, não percebi o que é para adicionar. Corri exatamente como colocaste e continuo a conseguir inserir dados com a mesma designação existente na bd. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now