Airamzita Posted June 20, 2012 Report Share Posted June 20, 2012 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 Report Share Posted June 21, 2012 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 Author Report Share Posted June 23, 2012 (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 by Airamzita Link to comment Share on other sites More sharing options...
joelbrito Posted June 23, 2012 Report Share Posted June 23, 2012 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 Author Report Share Posted June 24, 2012 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