Dúvida com classe DAO[RESOLVIDO]

Bom dia…

estou tendo problemas para chamar um metodo de uma classe DAO

	public Cliente select(long id) {
		String sql = "SELECT * FROM CLIENTE WHERE ID=?;";
		
		try {
			PreparedStatement stmt = connection.prepareStatement(sql);
			ResultSet rs = stmt.executeQuery();
			Cliente cliente = new Cliente();
			if(rs.next()) {
				
				stmt.setLong(1, id);
				cliente.setId(rs.getLong("id"));
				cliente.setNome(rs.getString("nome"));
				cliente.setId_tipo(rs.getLong("id_tipo"));
				cliente.setCpf_cnpj(rs.getString("cpf_cnpj"));
				cliente.setRg_ie(rs.getString("rg_ie"));
				cliente.setEndereco(rs.getString("endereco"));
				cliente.setFone(rs.getString("fone"));
				cliente.setContato(rs.getString("contato"));
				
				
			}
			rs.close();
			stmt.close();
			return cliente;
		
		}catch (SQLException e) {
			throw new RuntimeException(e);
		}
	}

entao eu tento rodar ele com um teste

public class Teste {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		long id = 11;
		ClienteDAO dao = new ClienteDAO();
		dao.select(id);
		
			

	}

	
	

}

quando rodo esse teste ele causa uma exception, dizendo que nao foi fornecido valor para o param 1 da classe DAO

onde será que estou errando "/

Cara,

Na linha após o

PreparedStatement stmt = connection.prepareStatement(sql);

Você precisa atribuir o id que recebe como parâmetro para o statement:

stmt.setLong(1, id);
stmt.setLong(1, id); 

antes do …

ResultSet rs = stmt.executeQuery();  

Olá, você somente trocou as posições de uma linha de código que esta na linha 10, e tem que ser antes do IF:

	public Cliente select(long id) {
		String sql = "SELECT * FROM CLIENTE WHERE ID=?;";
		
		try {
			PreparedStatement stmt = connection.prepareStatement(sql);
			ResultSet rs = stmt.executeQuery();
			Cliente cliente = new Cliente();
			if(rs.next()) {
				
				stmt.setLong(1, id);  //FIXME: Esta linha tem que ser antes do ResultSet rs = stmt.executeQuery(); que esta na linha 06
				cliente.setId(rs.getLong("id"));
				cliente.setNome(rs.getString("nome"));
				cliente.setId_tipo(rs.getLong("id_tipo"));
				cliente.setCpf_cnpj(rs.getString("cpf_cnpj"));
				cliente.setRg_ie(rs.getString("rg_ie"));
				cliente.setEndereco(rs.getString("endereco"));
				cliente.setFone(rs.getString("fone"));
				cliente.setContato(rs.getString("contato"));
				
				
			}
			rs.close();
			stmt.close();
			return cliente;
		
		}catch (SQLException e) {
			throw new RuntimeException(e);
		}
	}

hehehe…
caramba…

era isso mesmo

pior que eu fiquei me matando por uma falta de atenção

valeu gente deu certo agora!