Como se faz?

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

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

[code] //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()]);
  
}[/code]

[quote=“renan_daniel”]seu método listar tem que ficar mais ou menos assim…

[code] //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()]);
  
}[/code][/quote]

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

[quote=“darkseid”]
Poderia criar e retornar uma collection (ArrayList) ao inves de um array primitivo[/quote]

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

mas é uma outra solução…
flw

Valeu galera!
Funcionou perfeitamente!

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

Valeu!