[Resolvido] pesquisa em banco de dados

1 resposta
E

Ola gente, não estou conseguindo entender este exercício da apostila da caelum, foi pedido para fazer uma pesquisa, alguem me ajuda?

package br.com.etrsolution.jdbc.teste;

import java.util.List;

import br.com.etrsolution.jdbc.dao.ContatoDAO;
import br.com.etrsolution.jdbc.modelo.Contato;

public class TestaPesquisa {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		ContatoDAO dao = new ContatoDAO();
		List<Contato> contatos = dao.getPesquisa();
		
		Contato contato = new Contato();
		contato.setId((long) 1);
		
		for (Contato contato1 : contatos) {
			System.out.println("Nome: " + contato1.getNome());
			System.out.println("Email:" + contato1.getEmail());
			System.out.println("Endereço: " + contato1.getEndereco());
			System.out.println("Data de Nascimento: " + contato1.getDataNascimento().getTime() + "\n");
		}

	}

}
public List<Contato> getPesquisa() {

		try {
			List<Contato> contatos = new ArrayList<Contato>();
			PreparedStatement stmt = (PreparedStatement) this.connection.prepareStatement("select * from contatos where id=?");
			
			// criando o objeto Contato
			Contato contato = new Contato();
			
			stmt.setLong(1, contato.getId());
			
			ResultSet rs = stmt.executeQuery();
			
			contato.setNome(rs.getString("nome"));
			contato.setEmail(rs.getString("email"));
			contato.setEndereco(rs.getString("endereco"));
			
			// montando a data através do Calendar
			Calendar data = Calendar.getInstance();
			data.setTime(rs.getDate("dataNascimento"));
			contato.setDataNascimento(data);
			
			// adicionando o objeto à lista
			contatos.add(contato);
			
			stmt.execute();
			stmt.close();
			return contatos;
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}

	}

Obrigado

1 Resposta

E

Gente, consegui, nem acredito rs, mas mesmo assim não sei se foi da forma certa… afinal de contas quero aprender usando boas práticas.

package br.com.etrsolution.jdbc.teste;

import java.util.List;

import br.com.etrsolution.jdbc.dao.ContatoDAO;
import br.com.etrsolution.jdbc.modelo.Contato;

public class TestaPesquisa {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		Contato contato = new Contato();
		contato.setId((long) 2);
		
		ContatoDAO dao = new ContatoDAO();
		List<Contato> contatos = dao.getPesquisa(contato);
		
		for (Contato contato1 : contatos) {
			System.out.println("Nome: " + contato1.getNome());
			System.out.println("Email:" + contato1.getEmail());
			System.out.println("Endereço: " + contato1.getEndereco());
			System.out.println("Data de Nascimento: " + contato1.getDataNascimento().getTime() + "\n");
		}

	}

}
public List<Contato> getPesquisa(Contato contato) {

		String sql = "select * from contatos where id=?";
		
		try {
			List<Contato> contatos = new ArrayList<Contato>();
			PreparedStatement stmt = (PreparedStatement) this.connection.prepareStatement(sql);
			
			stmt.setLong(1, contato.getId());
			ResultSet rs = stmt.executeQuery();
			
			while (rs.next()) {
				contato.setNome(rs.getString("nome"));
				contato.setEmail(rs.getString("email"));
				contato.setEndereco(rs.getString("endereco"));
				
				// montando a data através do Calendar
				Calendar data = Calendar.getInstance();
				data.setTime(rs.getDate("dataNascimento"));
				contato.setDataNascimento(data);
				
				// adicionando o objeto à lista
				contatos.add(contato);
			}
			rs.close();
			stmt.close();
			return contatos;
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}

	}

Obrigado, mas por favor, se puderem comentar algo sobre o código fico agradecido, até porque eu acho que para uma consulta que busca num banco de teste onde só tem dois registros, demorou um pouco para me trazer a informação, deve ter um jeito certo.

Criado 6 de março de 2011
Ultima resposta 6 de mar. de 2011
Respostas 1
Participantes 1