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

4 respostas
R
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;
   } 
}

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

4 Respostas

gustavocoolt

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;
	}
charleston10

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.

charleston10
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:

R

vlw a todos
foi de grande ajuda ;D

Criado 26 de setembro de 2012
Ultima resposta 26 de set. de 2012
Respostas 4
Participantes 3