Como se faz?

4 respostas
Z

Olá a todos,

Estou criando uma classe que faz diversas operações no banco de dados.
E estou com uma dúvida no método pesquisarAlimentos(String).
Eu quero retornar um Array com o valores da Query.

Quero que retorne um Array porque preciso utilizar em várias aplicações.

Como eu faço isso?

package cardapio;

import java.sql.*;

public class conexao 
{
private Connection conexao;
private Statement declaracao;
private ResultSet resultado;
private String acao;
private String cadastrarCardapio;
private String cadastrarAlimento;
private String deletarAlimento;
private String pesquisarAlimentos;


  public conexao()
  {
  conexao = null;
  declaracao = null;
  resultado = null;
  acao = null;
  try
  {
    Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
    conexao = DriverManager.getConnection("jdbc:oracle:thin:@inf01.altsa.com:1545:portal", "mzanatto", "mzanatto");
    declaracao = conexao.createStatement();
  }
  catch (SQLException e) 
  {
    System.out.println("Não foi possivel Conectar()");
  }
  catch (Exception e)
  {
    System.out.println("Driver não carregado");
  }
  }



public String cadastrarAlimento(String alimento, String tipo, String opcao, String calorias)
{
  try
  {
    acao = "insert into ALIMENTO (ALIMENTO, TIPO, OPCAO, CALORIAS) VALUES ('"+alimento+"','"+tipo+"','"+opcao+"','"+calorias+"')";
    declaracao.executeUpdate(acao);
    cadastrarAlimento = "cadastrado";
  }
  catch (SQLException e)
  {
    System.out.println(e);
  }
  return cadastrarAlimento;
}



public String deletarAlimento(String alimento, String tipo, String opcao, String calorias)
{
  try
  {
    acao = "delete ALIMENTO where ALIMENTO = '"+alimento+"' AND TIPO = '"+tipo+"' AND OPCAO = '"+opcao+"' AND CALORIAS = '"+calorias+"'";
    declaracao.executeUpdate(acao);
    deletarAlimento = "deletado";
  }
  catch (SQLException e)
  {
    System.out.println(e);
  }
  return deletarAlimento;
}



public String pesquisarAlimentos(String opcao)
{
  try
  {
    int i = 0;
    acao = "select * FROM ALIMENTO where OPCAO = '"+opcao+"'";
    resultado = declaracao.executeQuery(acao);

    while (resultado.next())
    {
      pesquisarAlimentos = resultado.getString("ALIMENTO");
      System.out.println(pesquisarAlimentos);
    }    

  }
  catch (SQLException e)
  {
    System.out.println(e);
  }
  return pesquisarAlimentos;
}

 

  
  public static void main(String[] args)
  {
    conexao conexao = new conexao();
    String Resultado = conexao.pesquisarAlimentos("PRATODODIA");

  }
  

}

Obrigado

4 Respostas

R

seu método listar tem que ficar mais ou menos assim....

//Seu metodo listar vai ter que retornar um array
    public String[] pesquisarAlimentos(String opcao)
    {
      ArrayList lista = new ArrayList();
    	
      try
      {
        acao = "select * FROM ALIMENTO where OPCAO = '"+opcao+"'";
        resultado = declaracao.executeQuery(acao);

        while (resultado.next())
        {
          //Adicionou no array list	
          lista.add(resultado.getString("ALIMENTO"));
        }   

      }
      catch (SQLException e)
      {
        System.out.println(e);
      }
      
      return (String[]) lista.toArray(new String[lista.size()]);
      
    }
D
"renan_daniel":
seu método listar tem que ficar mais ou menos assim....
//Seu metodo listar vai ter que retornar um array
    public String[] pesquisarAlimentos(String opcao)
    {
      ArrayList lista = new ArrayList();
    	
      try
      {
        acao = "select * FROM ALIMENTO where OPCAO = '"+opcao+"'";
        resultado = declaracao.executeQuery(acao);

        while (resultado.next())
        {
          //Adicionou no array list	
          lista.add(resultado.getString("ALIMENTO"));
        }   

      }
      catch (SQLException e)
      {
        System.out.println(e);
      }
      
      return (String[]) lista.toArray(new String[lista.size()]);
      
    }

Poderia criar e retornar uma collection (ArrayList) ao inves de um array primitivo

R

“darkseid”:

Poderia criar e retornar uma collection (ArrayList) ao inves de um array primitivo

vai do que ele mais necessita… como ele estava retornando uma String eu resolvi não “complicar muito”…

mas é uma outra solução…
flw

Z

Valeu galera!
Funcionou perfeitamente!

Aproveitando o embalo.
Essa classe que eu fiz é a melhor prática?

Valeu!

Criado 11 de maio de 2005
Ultima resposta 12 de mai. de 2005
Respostas 4
Participantes 3