Método para fazer Busca em SQL

Olá pessoal,
eu estou com uma dúvida
e não estou conseguindo
construir um método para fazer
uma busca simples em SQL.

Será que alguém poderia me dar uma ajuda?
Eu preciso retornar o objeto certo caso a busca seja bem sucedida,
caso contrário retorna null.

public Contatos buscar(Contatos contatos) throws ContatosDaoException{

        PreparedStatement ps = null;
        Connection conn = null;
        ResultSet rs = null;

        try{
            conn = this.conn;
            ps = conn.prepareStatement("SELECT * FROM registros WHERE id = '" + contatos.getid() + "'");
            rs = ps.executeQuery();
            if(rs.next()){
                int id = rs.getInt(1);
                String nome = rs.getString(2);
                String endereco = rs.getString(3);
                String bairro = rs.getString(4);
                String cidade = rs.getString(5);
                String estado = rs.getString(6);
                String cep = rs.getString(7);
                String telefone = rs.getString(8);
                return null; //Não sei como retornar o objeto certo
            }
            else{
                return null;
            }

        }catch(Exception sqle){
             throw new ContatosDaoException(sqle);

        } finally {
            try {
                ConnectContatosFactory.closeconnection(conn, ps, rs);
            } catch (SQLException ex) {
                Logger.getLogger(ContatosDao.class.getName()).log(Level.SEVERE, null, ex);
            }

        }
    }

[]'s.

se entendi bem… tente fazer assim:

[code]public Contatos buscar(String id) throws ContatosDaoException {
PreparedStatement ps = null;
Connection conn = null;
ResultSet rs = null;

try{   
    conn = this.conn;   
    ps = conn.prepareStatement("SELECT * FROM registros WHERE id = '?'");   
    ps.setString(1, id);
    rs = ps.executeQuery();
    Contatos contatos = null;

    if(rs.next()){
        contatos = new Contatos();
        contatos.setId(rs.getInt(1));
        // ...
    } 
} catch(Exception sqle){   
     throw new ContatosDaoException(sqle);   
} finally {   
    try {   
        ConnectContatosFactory.closeconnection(conn, ps, rs);   
    } catch (SQLException ex) {   
        Logger.getLogger(ContatosDao.class.getName()).log(Level.SEVERE, null, ex);   
    }   

}
return contatos;

}[/code]

Atribui os valores dentro do seu objeto através dos métodos setXXX ou do construtor.

Valeu wbdsjunior e Jair Rillo Junior
Obrigado pela ajuda, vou tentar fazer o
que vocês disseram e qualquer coisa
eu posto aqui no fórum.

[]'s.