Consulta de BD com java

Salva galera do bem, to com um problemão, se alguem puder ajudar eu agradeceria muitooooooooooooooooooooooo.
Bom, eu não consigo consultar os dados do Banco de Dados com outer join, simplesmente quando eu pego o dado pelo método getString() o programa diz que a coluna não foi encontrada. Maravilha =/
Ta ae os códigoooooooos

Main:

import javax.swing.*;
import java.sql.*;
public class banco_de_dados 
{
	public static void main(String args[]) 
	{   
			consulta BancoConsulta;
			int i = Integer.parseInt (JOptionPane.showInputDialog("Favor escolher uma ação\n\n1 - Ver os nomes dos chefs\n2 - Ver os e-mails dos chefs\n3 - Consultar as respectivas receitas dos chefs\n4 - Sair"));
			switch (i) {
			case 1:
			BancoConsulta = new consulta("select nmchef from chef", "nmchef", "");
			break;
			case 2:
			BancoConsulta = new consulta("select emailchef from chef", "emailchef", "");
			break;
			case 3:
			BancoConsulta = new consulta("select a.nmchef Chef, c.nmreceita Receita from chef a, receita b, doce c where b.cdtiporeceita = c.cdtiporeceita and a.cdchef = b.cdchef union select a.nmchef Chef, c.nmreceita Receita from chef a, receita b, salgado c where b.cdtiporeceita = c.cdtiporeceita and a.cdchef = b.cdchef", "b.nmreceita", "c.nmreceita");
			break;
			case 4:
			break;		
			}
			}
		}

Consulta:

import java.sql.*;
public class consulta 
{
	public consulta(String query, String field, String field2)		// método construtor
	{   
		try
		{
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance(); 	
			Connection con = DriverManager.getConnection("jdbc:odbc:Oracle","banco", "dadas");
			Statement stmt = con.createStatement();
			ResultSet rs = stmt.executeQuery (query);		
			String mensagem = "";
			String mensagem2 = "";
			while (rs.next()) 
			{
				String nome = rs.getString(field);
				String nome2 = rs.getString(field2); 
				mensagem += nome+"\n";
				mensagem2 += nome2+"\n";
			}
			System.out.println (mensagem);
			System.out.println (mensagem2);
			con.close();
		}
		catch(Exception erro)
		{
			System.out.println(erro);
		}
	}
}

VLWWWWWWWWWWWWWWWWWWWWW

[color=“red”]* Editado por Carneiro
Tópico criado em: Java Avançado
Movido para: Persistência
[/color]

Olá. Olhando o teu select encontrei um probleminha no final dele. Segue abaixo o que seria o correto:

BancoConsulta = new consulta("select a.nmchef Chef, c.nmreceita Receita from chef a, receita b, doce c where b.cdtiporeceita = c.cdtiporeceita and a.cdchef = b.cdchef union select a.nmchef Chef, c.nmreceita Receita from chef a, receita b, salgado c where b.cdtiporeceita = c.cdtiporeceita and a.cdchef = b.cdchef and b.nmreceita and c.nmreceita");

Me parece que você tentou envolver os dois campos nmreceita com aspas duplas, provavelmente porque são do tipo caractere (que no Oracle é Varchar2). Primeiro, que numa associação de campos num select você não deve fazer isto. Segundo, que quando precisar passar pro select um valor que é do tipo caractere, usa-se aspas simples.

Sucesso aí!!