Statment é resultset , se alguem poder me dar uma breve descrição deles

[code] public boolean addAgenda(Agenda agenda) {
Statement s = null;
ResultSet rs = null;
int iQtdRegAfetados = 0;

      if (conn != null) {
          try {
               s = conn.createStatement();
               iQtdRegAfetados = s.executeUpdate("INSERT INTO agenda " +
            	   "(primeironome, ultimonome, email) VALUES ('" +
                   agenda.getPrimeiroNome() + "', '" + 
                   agenda.getUltimoNome() + "', '" +
                   agenda.getEmail() + "')");
              }
          catch (SQLException sqlException) {
        	  System.out.println("Ocorreu uma exceção SQL");
              }
          catch (Exception exception) {
        	  System.out.println("Ocorreu uma exce��o");
              }
          finally {
               try {
                    if (rs != null) rs.close();
                    if (s != null) s.close();
                   }
               catch (Exception exception) {
            	   System.out.println("Ocorreu uma exce��o SQL");
                   }
              }
         }
     return iQtdRegAfetados > 0;

}
}
[/code]

queria saber para que servem os tipo de dados Statment e Resultset
??/

Li este artigo http://www.guj.com.br/articles/7 mas mesmo assim não esta encaixando na minha cabeça…

oq deu pra entender e que o Statment executa o comando sql

ja o resultset não saiu nada

cara, resultset seria o resultado da sua query… onde vc pode pegar os dados através de um while(rs.next())
segue um exemplo comentado abaixo:

	public Object consultarTodosClientes(){

		ArrayList<ClienteModel> listaClientes = new ArrayList<ClienteModel>();

		try{

			Statement stm = getConnection().createStatement();

			//SQL
			String sql = "SELECT idcliente, nome, telefone, cidade, ativo, cep, estado, email, observacao, tipo, inscricaoestadual, rg, bairro, cpf, cnpj, endereco "
						 +"FROM clientes "
						 +"ORDER BY clientes.nome";
			/**
			 * Nesta parte é executado a SQL(Query) informada tendo como retorno
			 * os dados encontrados dentro de um ResultSet.
			 */
			ResultSet rs = stm.executeQuery(sql);

			while(rs.next()){ //busca todas as linhas que tiver na tabela.. quando ele nao encontrar a proxima linha ele sai fora..
				Integer codigo = rs.getInt("idcliente");
				String nome = rs.getString("nome");
				String telefone = rs.getString("telefone");
				String cidade = rs.getString("cidade");
				String ativo = rs.getString("ativo");
				String cep = rs.getString("cep");
				String estado = rs.getString("estado");
				String email = rs.getString("email");
				String observacao = rs.getString("observacao");
				String tipo = rs.getString("tipo");
				String inscricaoestadual = rs.getString("inscricaoestadual");
				String rg = rs.getString("rg");
				String bairro = rs.getString("bairro");
				String cpf = rs.getString("cpf");
				String cnpj = rs.getString("cnpj");
				String endereco = rs.getString("endereco");

				ClienteModel vo = new ClienteModel(codigo, nome, telefone, cidade, ativo, cep, estado, email, observacao, tipo, inscricaoestadual, rg, bairro, cpf, cnpj, endereco);

				//guardando os dados no array
				listaClientes.add(vo);
			}

			//Fechando o Statement
			stm.close();

			//Fechando o ResultSet
			rs.close();

		}catch(Exception e){
			JOptionPane.showMessageDialog(null, "Falha ao Consultar!","Confirmação",0);
		}
		return listaClientes;
	}

ResultSet

Um ResultSet objeto mantém um cursor que aponta para a sua linha atual de dados.
Inicialmente, o cursor está posicionado antes da primeira linha.
O próximo método move o cursor para a próxima linha, e porque ele retorna falso quando não houver mais linhas no ResultSet objeto,

“Ele pode ser usado em um loop para percorrer o conjunto de resultados.”

Ou seja resultado de uma consulta que pode ser guardado em um Array, Object ou qualquer outra coisa.

Statement

É um comando sql compilado criado por uma conexão (conection).
Ele vai ser o responsável por efetuar o comando de busca, exclusao, inclusao e atualizacao do banco atraves de uma aplicacao.

Ou seja, de uma maneira bem simples o Statement é um objeto que vai acionar o banco de dados para fazer uma consulta e o ResultSet vai guardar o resultado dessa consulta.

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/BANCO_DE_DADOS?user=root&password=root");  
Statement stm = conn.createStatement();  //Objeto do banco de dados ativado para executar alguns métodos,  entre eles - poder pesquisar;
ResultSet rs = stm.executeQuery("SELECT coluna1, coluna2, coluna3 FROM tabela"); //Objeto que vai guardar o resultado da pesquisa desse SQL
while (rs.next()) {  //faz uma varredura com a pesquisa do "rs" -> ResultSet
    String coluna1 = rs.getString("coluna1"); // -> retorna o resultado da coluna1
    int coluna2 = rs.getInt("coluna2"); // -> retorna o resultado da coluna2
    Date coluna3 = rs.getDate("coluna3");  //-> retorna o resultado da coluna3
}  

:wink:

vlw a todos
foi de grande ajuda ;D