Advertisement
Guest User

Untitled

a guest
May 26th, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.32 KB | None | 0 0
  1. /*
  2. * To change this license header, choose License Headers in Project Properties.
  3. * To change this template file, choose Tools | Templates
  4. * and open the template in the editor.
  5. */
  6. package agenda;
  7.  
  8. import java.sql.Connection;
  9. import java.sql.DriverManager;
  10. import java.sql.PreparedStatement;
  11. import java.sql.SQLException;
  12. import java.sql.Statement;
  13. import java.util.logging.Level;
  14. import java.util.logging.Logger;
  15.  
  16. public class Pesquisa {
  17.  
  18. public List<Contato> Pesquisa() { //agora poderá ter mais de um retorno.
  19.  
  20. // Contato contato = new Contato(); << (linha retirada) aqui você cria um objeto mas o correto é criar um para cada retorno.
  21. String sql = "SELECT id, nome, email, endereco, dataNascimento FROM contatos WHERE nome LIKE ?"; //O correto é escrever dessa forma, maiúsculo aos comandos sql e usar o ? no lugar da variável.
  22. try {
  23. PreparedStatement stmt = this.con.prepareStatement(sql); //não achei onde você fez a conexão, mas pelo que entendi já foi feita fora do código.
  24. stmt.setString(1, "%" + nome + "%"); //aqui você indica o que vai substituir o ?
  25. ResultSet rs = stmt.executeQuery();
  26. List<Contato> lista = new ArrayList<>();
  27. while (rs.next()) {
  28. //System.out.println("Ob:" + rs.next()); não pode fazer isso, assim ele vai pular um resultado a cada passagem.
  29.  
  30. Contato contato = new Contato(); //como esse resultado pode haver mais de um Contato, você deve cria-lo dentro do while.
  31. contato.setNome(rs.getString("nome"));
  32. contato.setEmail(rs.getString("email"));
  33. contato.setEndereco(rs.getString("endereco"));
  34.  
  35. Calendar c = Calendar.getInstance();
  36. c.setTime(rs.getDate("dataNascimento"));
  37. contato.setDataNascimento(c);
  38. lista.add(contato); //Aqui vamos inclui-lo em uma lista, para que possamos ler todos os retornos e não só o ultimo.
  39. }
  40. stmt.close();
  41.  
  42. return lista; //aqui vai retornar a lista de Contatos que deverá ser trabalhada, de uma pesquisada sobre ArrayList.
  43.  
  44. } catch (SQLException s) {
  45. s.getStackTrace();
  46. } finally {
  47. //utilize aqui para fechar a conexão.
  48. }
  49. }
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement