Problemas para exibir dados de 3 tabelas usando Eclipse [RESOLVIDO]

17 respostas
E

Pessoal, estou com a seguinte dúvida:

Tenho 3 BD em MySql (cliente, lojista, lançamentos). Como eu faço para exibir todos os lançamentos que um cliente possui com base em um campo onde eu digite seu código?

O campo codCli (Cliente) e codLojista (Lojista) estão relacionados na tabela Lançamentos.

Estou usando o Eclipse para fazer o programa.

Segue o diagrama de classe.

Abraços.

O código está assim:

package gui;  
  
  
import java.awt.*;  
import java.awt.event.ActionEvent;  
import java.awt.event.ActionListener;  
import javax.swing.*;  
import javax.swing.table.DefaultTableModel;  
import classes.sql.ClienteDAO;  
import classes.sql.Conexao;  
import classes.sql.LancamentosDAO;  
import classes.sql.LojistaDAO;  
  
  
@SuppressWarnings("serial")  
public class ConsultaClientesDébitos extends JFrame {  
  
private Container c;  
private JPanel jpnlNorte;  
private JPanel jpnlSul;  
private JLabel lblNome;  
private JTextField jtxtNome;  
private JButton jbtnConsultar;  
private JButton jbtnSair;  
private JTable jtResultado;  
private DefaultTableModel dtm;  
private Conexao conect;  
private ClienteDAO clienteDAO;  
private LancamentosDAO lancamentosDAO;  
private LojistaDAO lojistaDAO;  
  
  
  
private String[] campos = { "Código Cliente", "Nome", "CPF", "Loja", "Valor Débito", "Situação Débito" };  
private String[][] registros = { { "", "", "", "", "", "" } };  
  
public static void main(String[] args) {  
    EventQueue.invokeLater(new Runnable() {  
        public void run() {  
            try {  
                ConsultaClientesDébitos frame = new ConsultaClientesDébitos();  
                frame.setVisible(true);  
            } catch (Exception e) {  
                e.printStackTrace();  
            }  
        }  
    });  
}  
  
  
public ConsultaClientesDébitos(){  
super("Consulta de Débitos do Cliente");  
setTitle("Consulta de Débitos do Cliente");  
  
c = getContentPane();  
c.setLayout(new BorderLayout());  
  
jpnlNorte = new JPanel(new FlowLayout());  
jpnlSul = new JPanel(new FlowLayout());  
  
lblNome = new JLabel("Código Cliente:");  
  
jtxtNome = new JTextField(07);  
//jtxtNome.setToolTipText("Utilize % para fazer pesquisa aproximada.");  
  
jtResultado = new JTable(registros, campos);  
dtm = new DefaultTableModel();  
jtResultado.setFillsViewportHeight(true);  
  
jbtnConsultar = new JButton("Consultar");  
jbtnSair = new JButton("Sair");  
  
c.add(jpnlNorte, BorderLayout.NORTH);  
c.add(new JScrollPane(jtResultado),  
BorderLayout.CENTER);  
c.add(jpnlSul,BorderLayout.SOUTH);  
  
jpnlNorte.add(lblNome);  
jpnlNorte.add(jtxtNome);  
jpnlNorte.add(jbtnConsultar);  
jpnlSul.add(jbtnSair);  
  
getJbtnSair();  
//getJbtnAtualizar();  
getJbtnConsultar();  
  
setSize(950,550);  
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);  
  
}  
  
public JButton getJbtnConsultar() {  
jbtnConsultar.addActionListener(new ActionListener() {  
  
//@Override  
public void actionPerformed(ActionEvent arg0) {  
String consulta = "select cli.codCli, cli.nomeCli, cli.cpfCli, loj.rsLojista, lanc.valorLanc, lanc.situacaoLanc" +  
"from Lancamentos lanc inner join Cliente cli on cli.codCli = lanc.codCli " +  
"inner JOIN Lojista loj on loj.codLojista = lanc.codLojista;";  
  
conect = new Conexao();  
conect.conectar();  
  
clienteDAO = new ClienteDAO(conect);  
lojistaDAO = new LojistaDAO(conect);  
lancamentosDAO = new LancamentosDAO(conect);  
  
dtm = new DefaultTableModel();  
dtm.setColumnIdentifiers(campos);  
  
consulta = jtxtNome.getText();  
  
for(Cliente cli :clienteDAO.consultar(consulta))   
for (Lojista loj :lojistaDAO.consultar(consulta))   
for (Lançamentos lanc :lancamentosDAO.consultar(consulta))  
{  
  
    dtm.addRow(new Object[]  
                  
        {cli.getcodCli(), cli.getnomeCli(), cli.getcpfCli(), loj.getrsLojista(),   
        lanc.getvalorLanc(), lanc.getsituacaoLanc()} );  
}  
  
jtResultado.setModel(dtm);  
conect.desconectar();  
  
}  
});  
return jbtnConsultar;  
}  
  
public JButton getJbtnSair() {  
jbtnSair.addActionListener(new ActionListener() {  
  
@Override  
public void actionPerformed(ActionEvent arg0) {  
  
dispose();  
  
}  
});  
return jbtnSair;  
  
}  
}

Alguém sabe como posso fazer?

17 Respostas

snowblacksoul

Cara esclarece melhor o que vc deseja!
Pelo que eu entendi isso é um problema de sql né!!
são três tabelas vc tem que fazer um select com as três tabelas , foi isso que conseguir entender, se não for reformula ae pra podermos te ajudar blz!!!

E

snowblacksoul:
Cara esclarece melhor o que vc deseja!
Pelo que eu entendi isso é um problema de sql né!!
são três tabelas vc tem que fazer um select com as três tabelas , foi isso que conseguir entender, se não for reformula ae pra podermos te ajudar blz!!!

Não é bem de sql, pq testei um select com uma view puxando os relacionamentos com inner join e funcionou mas, não sei como fazer isso no java. Tenho 3 tabelas e em uma delas (lançamentos) eu tenho 2 chaves estrangeiras (codCli e codLojista). Estou tentando fazer uma consulta onde digitando o código do cliente, ela me retorna em qual lojista o cliente está devendo e qual é o valor e a situação na tabela lançamentos.

fabiocortolan

Eu concordo com o snowblacksoul, acho q seu problema é a lógica no seu comando SELECT, não consigo ver sua dificuldade no java se vc já fez isso em SQL através de view, pega o mesmo select q vc colocou na view, adiciona uma cláusula WHERE com os dados q vc está passando no java.

snowblacksoul

Vamos lá amigo!!
começando passo a passo!

Seguinte,

1 - posta o sql que você disse que funcionou?!

2 - executei seu código e seguinte, onde vc está guardando o valor do código cliente?

3 - vc precisa de uma variavel pra pegar o valor do código clieente e colocar juntamente com o select, mais ou menos dessa forma

Select * from amigo where cod_amigo = "+cod_cliente+";

para sabermos qual é sua dúvida!! pelo que eu estou entendendo vc não sabe como passar uma variavel no select tipo isso aqui"select * from amigo where cod_amigo = “+cod_amigo+”"
mais vamos ao select primeiro, posta ae pra gente poder te ajudar!

vou utilizar o seu aqui, fazer algumas mudanças e mais tarde eu posto pra clarear a mente!!

E

snowblacksoul:
Vamos lá amigo!!
começando passo a passo!

Seguinte,

1 - posta o sql que você disse que funcionou?!

2 - executei seu código e seguinte, onde vc está guardando o valor do código cliente?

3 - vc precisa de uma variavel pra pegar o valor do código clieente e colocar juntamente com o select, mais ou menos dessa forma

Select * from amigo where cod_amigo = "+cod_cliente+";

para sabermos qual é sua dúvida!! pelo que eu estou entendendo vc não sabe como passar uma variavel no select tipo isso aqui"select * from amigo where cod_amigo = “+cod_amigo+”"
mais vamos ao select primeiro, posta ae pra gente poder te ajudar!

vou utilizar o seu aqui, fazer algumas mudanças e mais tarde eu posto pra clarear a mente!!

O select que utilizei é este:
select cli.nomeCli,
lanc.valorLanc,
lanc.codCli,
loj.rsLojista
from lancamentos lanc inner join cliente cli on cli.codCli = lanc.codCli
inner JOIN lojista loj on loj.codLojista = lanc.codLojista

O código do cliente está sendo digitado, creio eu, na variável jtxtNome. Eu acredito que essa variável está como String e o campo codCli é int. Se você preferir, posso compactar todo o sistema e mandar para você dar uma olhada.

Por hora, muito obrigado pela sua ajuda!

J

O select que utilizei é este:
select cli.nomeCli,
lanc.valorLanc,
lanc.codCli,
loj.rsLojista
from lancamentos lanc inner join cliente cli on cli.codCli = lanc.codCli
inner JOIN lojista loj on loj.codLojista = lanc.codLojista

O código do cliente está sendo digitado, creio eu, na variável jtxtNome. Eu acredito que essa variável está como String e o campo codCli é int. Se você preferir, posso compactar todo o sistema e mandar para você dar uma olhada.

Por hora, muito obrigado pela sua ajuda!

Se o código do cliente está em jtxtNome, só coloque uma cláusula WHERE na sua query, por exemplo “…”+“WHERE cli.codCli =”+ jtxtNome.getText();

Do jeito que está ele não está filtrando por código nenhum, é só especificar no WHERE qual código você quer.

E

JoaoOliveiraMlp:
O select que utilizei é este:
select cli.nomeCli,
lanc.valorLanc,
lanc.codCli,
loj.rsLojista
from lancamentos lanc inner join cliente cli on cli.codCli = lanc.codCli
inner JOIN lojista loj on loj.codLojista = lanc.codLojista

O código do cliente está sendo digitado, creio eu, na variável jtxtNome. Eu acredito que essa variável está como String e o campo codCli é int. Se você preferir, posso compactar todo o sistema e mandar para você dar uma olhada.

Por hora, muito obrigado pela sua ajuda!

Se o código do cliente está em jtxtNome, só coloque uma cláusula WHERE na sua query, por exemplo “…”+“WHERE cli.codCli =”+ jtxtNome.getText();

Do jeito que está ele não está filtrando por código nenhum, é só especificar no WHERE qual código você quer.

Não deu certo… se eu coloco % na caixa de texto ele exibe todos os registros… mas se coloco algum código, ele não mostra nada. Note que o campo codCli é Int… talvez seja isso… o jtxtNome é String, porém não sei como ler string e transformar em Int.

J

Para transformar uma String em Int, pode-se usar o método Integer.parseInt(stringDesejada), mas note que a String deve estar em formato numérico, ou será lançada uma exception.

E

KKKKK… agora complicou tudo mesmo :slight_smile:

Eu sou noob em Java e nem sei o que é exception. Dá uma olhada no meu código ai para cima. Eu estou adaptando ele de um exemplo que o professor passou. Esse é um trabalho da disciplina de BD que tenho que entregar segunda feira que vem.

Dá uma forcinha ai para mim, rssss

J

Faz o seguinte, primeiro testa sua query completa, com o WHERE e um código qualquer na view do banco de dados. Depois posta a query que está funcionando aqui e a gente coloca sua variável no meio. Ok? Só testa sua query diretamente no banco de dados (sem passar pelo Java) com um código qualquer.

E

Eu montei a seguinte view:
create view VpesquisaLanc as
select cli.codCli,
cli.nomeCli,
cli.cpfCli,
loj.rsLojista,
lanc.valorLanc,
lanc.situacaoLanc
from Lancamentos lanc
inner join Cliente cli on cli.codCli = lanc.codCli
inner JOIN Lojista loj on loj.codLojista = lanc.codLojista

depois testei assim:
select * from vpesquisalanc where codCli = 1

direto no SQL dá certo, mostra somente o cliente com código 1

Já no java… não funfa

J

Tenta fazer assim:

create view VpesquisaLanc as
select cli.codCli,
cli.nomeCli,
cli.cpfCli,
loj.rsLojista,
lanc.valorLanc,
lanc.situacaoLanc
from Lancamentos lanc
inner join Cliente cli on cli.codCli = lanc.codCli
inner JOIN Lojista loj on loj.codLojista = lanc.codLojista
WHERE cli.codCli = 1

Se der certo, deve funcionar no seu Java. Caso REALMENTE precise de um int, que eu acho improvável, já que ele passa como string mesmo, tenta dar Integer.parseInt(nometxt.getText()) no seu Java.

E

JoaoOliveiraMlp:
Tenta fazer assim:

create view VpesquisaLanc as
select cli.codCli,
cli.nomeCli,
cli.cpfCli,
loj.rsLojista,
lanc.valorLanc,
lanc.situacaoLanc
from Lancamentos lanc
inner join Cliente cli on cli.codCli = lanc.codCli
inner JOIN Lojista loj on loj.codLojista = lanc.codLojista
WHERE cli.codCli = 1

Se der certo, deve funcionar no seu Java. Caso REALMENTE precise de um int, que eu acho improvável, já que ele passa como string mesmo, tenta dar Integer.parseInt(nometxt.getText()) no seu Java.

Não funfou… nem convertendo para Int… repare que eu chamo um método (consultacod) da classe LancamentosDAO.

olha como está esse método:

public List<ViewPesquisa> consultaCod(String codCli){

		ViewPesquisa lanc = null;
		List<ViewPesquisa> lançamentos = new ArrayList<ViewPesquisa>();

		String sql = "select * from Vpesquisalanc where codCli =";

		try {

		ps = conexao.getConexao().prepareStatement(sql);
		ps.setString(1, codCli);
					
					/** ps.setString(2, nomeSigla);
					*/
		
		rs = ps.executeQuery();

		while(rs.next()){
		lanc = new ViewPesquisa();
		lanc.setcodCli(rs.getInt("codCli"));
		lanc.setnomeCli(rs.getString("nomeCli"));
		lanc.setcpfCli(rs.getString("cpfCli"));
		lanc.setcodLojista(rs.getInt("codLojista"));
		lanc.setrsLojista(rs.getString("rsLojista"));
		lanc.setcodLanc(rs.getInt("codLanc"));
		lanc.setvalorLanc(rs.getFloat("valorLanc"));
		lanc.setsituacaoLanc(rs.getString("situacaoLanc"));
		
		
		lançamentos.add(lanc);
		}


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

		return lançamentos;
		}

a classe ViewPesquisa está assim:

package gui;


public class ViewPesquisa {

	private int codCli;
	private String nomeCli;
	private String cpfCli;
	private int codLojista;
	private String rsLojista;
	private int codLanc;
	private Float valorLanc;
	private String situacaoLanc;
	
		public int getcodCli() {
		return codCli;
		}
		public void setcodCli(int codCli) {
		this.codCli = codCli;
		}
		public String getnomeCli() {
		return nomeCli;
		}
		public void setnomeCli(String nomeCli) {
		this.nomeCli = nomeCli;
		}
	
		public String getcpfCli() {
		return cpfCli;
		}
		public void setcpfCli(String cpfCli) {
		this.cpfCli = cpfCli;
		}
		
		public int getcodLojista() {
		return codLojista;
		}
		public void setcodLojista(int codLojista) {
		this.codLojista = codLojista;
		}	
		public String getrsLojista() {
		return rsLojista;
		}
	
		public void setrsLojista(String rsLojista) {
		this.rsLojista = rsLojista;
		}
	
		public int getcodLanc() {
		return codLanc;
		}
		public void setcodLanc(int codLanc) {
		this.codLanc = codLanc;
		}
	
		public Float getvalorLanc() {
		return valorLanc;
		}
		public void setvalorLanc(Float valorLanc) {
		this.valorLanc = valorLanc;
		}		
		
		public String getsituacaoLanc() {
		return situacaoLanc;
		}
		public void setsituacaoLanc(String situcaoLanc) {
		this.situacaoLanc = situcaoLanc;
		}	
}
snowblacksoul

Cara alem de sql esta faltando algo jtable também está errado.
fiz uma parte aqui daí o restante é contigo!
acho que irá conseguir matar a charada!
mas se não conseguir só pedir um help, detalhe está aparecendo somente o último valor do select certo!
estou utilizando o meu banco como teste, depois vc colocar o seu ai!!
segue o código!

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;

//import telas_Programa.Menu;
//import excecao.SaqueException;

@SuppressWarnings("serial")
public class ConsultaClientesDébitos extends JFrame {

	private Container c;
	private JPanel jpnlNorte;
	private JPanel jpnlSul;
	private JLabel lblNome;
	private JTextField jtxtNome;
	private JButton jbtnConsultar;
	private JButton jbtnSair;
	private JTable jtResultado;
	private DefaultTableModel dtm;

	private String[] campos = { "Código Cliente", "Nome", "CPF", "Loja",
			"Valor Débito", "Situação Débito" };
	private String[][] registros = { { "", "", "", "", "", "" } };

	DefaultTableModel tabelaCliente = new DefaultTableModel(null, new String[] {
			"Código Cliente", "Nome", "CPF", "Loja", "Valor Débito",
			"Situação Débito" }) {
		@Override
		public boolean isCellEditable(int row, int column) {
			return false;
		}
	};

	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					ConsultaClientesDébitos frame = new ConsultaClientesDébitos();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	public ConsultaClientesDébitos() {
		super("Consulta de Débitos do Cliente");
		setTitle("Consulta de Débitos do Cliente");

		c = getContentPane();
		c.setLayout(new BorderLayout());

		jpnlNorte = new JPanel(new FlowLayout());
		jpnlSul = new JPanel(new FlowLayout());

		lblNome = new JLabel("Código Cliente:");

		jtxtNome = new JTextField(07);
		// jtxtNome.setToolTipText("Utilize % para fazer pesquisa aproximada.");

		jtResultado = new JTable(registros, campos);

		dtm = new DefaultTableModel();
		jtResultado.setFillsViewportHeight(true);

		jbtnConsultar = new JButton("Consultar");
		jbtnConsultar.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {

                                 // AQUI PEGA O VALOR DIGITADO DO COD_CLIENTE
				String valor2;
				valor2 = (jtxtNome.getText());

				System.out.println(valor2);
				// CONECTA AO BANCO DE DADOS
				Connection con = new ConnectionFactory().getConnection();
				System.out
						.println("************************************************************");
				System.out.println("CONECTADO AO BANCO 				        				   *");
				System.out
						.println("************************************************************");
				Statement st = null;
				try {
					st = con.createStatement();
				} catch (SQLException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}

				ResultSet rs = null;
				try {
					rs = st.executeQuery("SELECT * FROM AMIGOS where cod_cliente =  "+ valor2 + "order by cod_cliente desc");//COLOCO O VALOR DIGITADO NO SQL PARA CONSULTA
				} catch (SQLException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}

				try {
					int dados;
					dados = 0;
					while (rs.next()) {
						dtm = new DefaultTableModel();
						dtm.setColumnIdentifiers(campos);

							dtm.addRow(new Object[]

							{ rs.getInt("cod_cliente"),rs.getString("nome"), rs.getString("cpf"), rs.getString("loja"), rs.getString("vl_deb"), rs.getString("sit_deb") });
							
							
					}
					
					jtResultado.setModel(dtm);
					
					setVisible(true);

				} catch (SQLException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
			}
		});
		jbtnSair = new JButton("Sair");

		c.add(jpnlNorte, BorderLayout.NORTH);
		c.add(new JScrollPane(jtResultado), BorderLayout.CENTER);
		c.add(jpnlSul, BorderLayout.SOUTH);

		jpnlNorte.add(lblNome);
		jpnlNorte.add(jtxtNome);
		jpnlNorte.add(jbtnConsultar);
		jpnlSul.add(jbtnSair);

		getJbtnSair();
			setSize(950, 550);
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

	}

	public class jbtnConsultar implements ActionListener {

		public jbtnConsultar() {

			jbtnConsultar = new JButton("Consultar");
			jbtnConsultar.addActionListener(this);
		}

		@Override
		public void actionPerformed(ActionEvent e) {
			// TODO Auto-generated method stub
			if (e.getSource() == jbtnConsultar) {
				System.out.println("teste");
			}

		}

	}

	public JButton getJbtnSair() {
		jbtnSair.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {

				dispose();

			}
		});
		return jbtnSair;

	}
}

Qualquer coisa manda um help, detalhe está faltando coisas a fazer ainda, pois está retornando somente o ultimo valor da consulta ok
o restante deixo pra vc correr atrás!!

boa sorte

E

snowblacksoul:
Cara alem de sql esta faltando algo jtable também está errado.
fiz uma parte aqui daí o restante é contigo!
acho que irá conseguir matar a charada!
mas se não conseguir só pedir um help, detalhe está aparecendo somente o último valor do select certo!
estou utilizando o meu banco como teste, depois vc colocar o seu ai!!
segue o código!

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;

//import telas_Programa.Menu;
//import excecao.SaqueException;

@SuppressWarnings("serial")
public class ConsultaClientesDébitos extends JFrame {

	private Container c;
	private JPanel jpnlNorte;
	private JPanel jpnlSul;
	private JLabel lblNome;
	private JTextField jtxtNome;
	private JButton jbtnConsultar;
	private JButton jbtnSair;
	private JTable jtResultado;
	private DefaultTableModel dtm;

	private String[] campos = { "Código Cliente", "Nome", "CPF", "Loja",
			"Valor Débito", "Situação Débito" };
	private String[][] registros = { { "", "", "", "", "", "" } };

	DefaultTableModel tabelaCliente = new DefaultTableModel(null, new String[] {
			"Código Cliente", "Nome", "CPF", "Loja", "Valor Débito",
			"Situação Débito" }) {
		@Override
		public boolean isCellEditable(int row, int column) {
			return false;
		}
	};

	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					ConsultaClientesDébitos frame = new ConsultaClientesDébitos();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	public ConsultaClientesDébitos() {
		super("Consulta de Débitos do Cliente");
		setTitle("Consulta de Débitos do Cliente");

		c = getContentPane();
		c.setLayout(new BorderLayout());

		jpnlNorte = new JPanel(new FlowLayout());
		jpnlSul = new JPanel(new FlowLayout());

		lblNome = new JLabel("Código Cliente:");

		jtxtNome = new JTextField(07);
		// jtxtNome.setToolTipText("Utilize % para fazer pesquisa aproximada.");

		jtResultado = new JTable(registros, campos);

		dtm = new DefaultTableModel();
		jtResultado.setFillsViewportHeight(true);

		jbtnConsultar = new JButton("Consultar");
		jbtnConsultar.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {

                                 // AQUI PEGA O VALOR DIGITADO DO COD_CLIENTE
				String valor2;
				valor2 = (jtxtNome.getText());

				System.out.println(valor2);
				// CONECTA AO BANCO DE DADOS
				Connection con = new ConnectionFactory().getConnection();
				System.out
						.println("************************************************************");
				System.out.println("CONECTADO AO BANCO 				        				   *");
				System.out
						.println("************************************************************");
				Statement st = null;
				try {
					st = con.createStatement();
				} catch (SQLException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}

				ResultSet rs = null;
				try {
					rs = st.executeQuery("SELECT * FROM AMIGOS where cod_cliente =  "+ valor2 + "order by cod_cliente desc");//COLOCO O VALOR DIGITADO NO SQL PARA CONSULTA
				} catch (SQLException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}

				try {
					int dados;
					dados = 0;
					while (rs.next()) {
						dtm = new DefaultTableModel();
						dtm.setColumnIdentifiers(campos);

							dtm.addRow(new Object[]

							{ rs.getInt("cod_cliente"),rs.getString("nome"), rs.getString("cpf"), rs.getString("loja"), rs.getString("vl_deb"), rs.getString("sit_deb") });
							
							
					}
					
					jtResultado.setModel(dtm);
					
					setVisible(true);

				} catch (SQLException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
			}
		});
		jbtnSair = new JButton("Sair");

		c.add(jpnlNorte, BorderLayout.NORTH);
		c.add(new JScrollPane(jtResultado), BorderLayout.CENTER);
		c.add(jpnlSul, BorderLayout.SOUTH);

		jpnlNorte.add(lblNome);
		jpnlNorte.add(jtxtNome);
		jpnlNorte.add(jbtnConsultar);
		jpnlSul.add(jbtnSair);

		getJbtnSair();
			setSize(950, 550);
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

	}

	public class jbtnConsultar implements ActionListener {

		public jbtnConsultar() {

			jbtnConsultar = new JButton("Consultar");
			jbtnConsultar.addActionListener(this);
		}

		@Override
		public void actionPerformed(ActionEvent e) {
			// TODO Auto-generated method stub
			if (e.getSource() == jbtnConsultar) {
				System.out.println("teste");
			}

		}

	}

	public JButton getJbtnSair() {
		jbtnSair.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {

				dispose();

			}
		});
		return jbtnSair;

	}
}

Qualquer coisa manda um help, detalhe está faltando coisas a fazer ainda, pois está retornando somente o ultimo valor da consulta ok
o restante deixo pra vc correr atrás!!

boa sorte

Valew SnowBlackSoul ô¿ô !!

Vou testar o código e fazer as implementações que faltarem.

Muito obrigado por me ajudar. Se der zica, eu continuo aki perguntando.
[ ] ´s

E

snowblacksoul:
Cara alem de sql esta faltando algo jtable também está errado.
fiz uma parte aqui daí o restante é contigo!
acho que irá conseguir matar a charada!
mas se não conseguir só pedir um help, detalhe está aparecendo somente o último valor do select certo!
estou utilizando o meu banco como teste, depois vc colocar o seu ai!!
segue o código!

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;

//import telas_Programa.Menu;
//import excecao.SaqueException;

@SuppressWarnings("serial")
public class ConsultaClientesDébitos extends JFrame {

	private Container c;
	private JPanel jpnlNorte;
	private JPanel jpnlSul;
	private JLabel lblNome;
	private JTextField jtxtNome;
	private JButton jbtnConsultar;
	private JButton jbtnSair;
	private JTable jtResultado;
	private DefaultTableModel dtm;

	private String[] campos = { "Código Cliente", "Nome", "CPF", "Loja",
			"Valor Débito", "Situação Débito" };
	private String[][] registros = { { "", "", "", "", "", "" } };

	DefaultTableModel tabelaCliente = new DefaultTableModel(null, new String[] {
			"Código Cliente", "Nome", "CPF", "Loja", "Valor Débito",
			"Situação Débito" }) {
		@Override
		public boolean isCellEditable(int row, int column) {
			return false;
		}
	};

	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					ConsultaClientesDébitos frame = new ConsultaClientesDébitos();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	public ConsultaClientesDébitos() {
		super("Consulta de Débitos do Cliente");
		setTitle("Consulta de Débitos do Cliente");

		c = getContentPane();
		c.setLayout(new BorderLayout());

		jpnlNorte = new JPanel(new FlowLayout());
		jpnlSul = new JPanel(new FlowLayout());

		lblNome = new JLabel("Código Cliente:");

		jtxtNome = new JTextField(07);
		// jtxtNome.setToolTipText("Utilize % para fazer pesquisa aproximada.");

		jtResultado = new JTable(registros, campos);

		dtm = new DefaultTableModel();
		jtResultado.setFillsViewportHeight(true);

		jbtnConsultar = new JButton("Consultar");
		jbtnConsultar.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {

                                 // AQUI PEGA O VALOR DIGITADO DO COD_CLIENTE
				String valor2;
				valor2 = (jtxtNome.getText());

				System.out.println(valor2);
				// CONECTA AO BANCO DE DADOS
				Connection con = new ConnectionFactory().getConnection();
				System.out
						.println("************************************************************");
				System.out.println("CONECTADO AO BANCO 				        				   *");
				System.out
						.println("************************************************************");
				Statement st = null;
				try {
					st = con.createStatement();
				} catch (SQLException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}

				ResultSet rs = null;
				try {
					rs = st.executeQuery("SELECT * FROM AMIGOS where cod_cliente =  "+ valor2 + "order by cod_cliente desc");//COLOCO O VALOR DIGITADO NO SQL PARA CONSULTA
				} catch (SQLException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}

				try {
					int dados;
					dados = 0;
					while (rs.next()) {
						dtm = new DefaultTableModel();
						dtm.setColumnIdentifiers(campos);

							dtm.addRow(new Object[]

							{ rs.getInt("cod_cliente"),rs.getString("nome"), rs.getString("cpf"), rs.getString("loja"), rs.getString("vl_deb"), rs.getString("sit_deb") });
							
							
					}
					
					jtResultado.setModel(dtm);
					
					setVisible(true);

				} catch (SQLException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
			}
		});
		jbtnSair = new JButton("Sair");

		c.add(jpnlNorte, BorderLayout.NORTH);
		c.add(new JScrollPane(jtResultado), BorderLayout.CENTER);
		c.add(jpnlSul, BorderLayout.SOUTH);

		jpnlNorte.add(lblNome);
		jpnlNorte.add(jtxtNome);
		jpnlNorte.add(jbtnConsultar);
		jpnlSul.add(jbtnSair);

		getJbtnSair();
			setSize(950, 550);
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

	}

	public class jbtnConsultar implements ActionListener {

		public jbtnConsultar() {

			jbtnConsultar = new JButton("Consultar");
			jbtnConsultar.addActionListener(this);
		}

		@Override
		public void actionPerformed(ActionEvent e) {
			// TODO Auto-generated method stub
			if (e.getSource() == jbtnConsultar) {
				System.out.println("teste");
			}

		}

	}

	public JButton getJbtnSair() {
		jbtnSair.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {

				dispose();

			}
		});
		return jbtnSair;

	}
}

Qualquer coisa manda um help, detalhe está faltando coisas a fazer ainda, pois está retornando somente o ultimo valor da consulta ok
o restante deixo pra vc correr atrás!!

boa sorte

Snow,

Tentei mas não deu certo. Não sei mais o que fazer. Ontem na aula de BD, meu professor disse que eu tinha que criar um método dentro de uma classe DAO e chamar ele nessa consulta. Agora eu não sei de mais nada. Será que realmente o arrayList precisa de um método isolado para fazer uma View virar uma lista?

Dá uma força ai!

Abraço!

E

Obrigado a todos que leram e que me ajudaram. Se tiver mais dúvidas eu pergunto de novo a essa galera.

Um grande abraço!

Criado 26 de maio de 2013
Ultima resposta 29 de mai. de 2013
Respostas 17
Participantes 4