Galera to tentando fazer uma consulta de vendas no meu sistema , mais não estou conseguindo tenho a classe
VendasBean :
//declarando objetos que irão representar os campos da tabela vendas
public class VendasBean {
/** Creates a new instance of VendasBean */
public VendasBean() {
}
private Integer codigo;
private Integer codigoProduto;
private Integer codigoCliente;
private Date dataVenda;
private Integer quantidade;
private String nomeCliente;
private String nomeProduto;
public Integer getCodigo() {
return codigo;
}
public void setCodigo(Integer codigo) {
this.codigo = codigo;
}
public Integer getCodigoProduto() {
return codigoProduto;
}
public void setCodigoProduto(Integer codigoProduto) {
this.codigoProduto = codigoProduto;
}
public Integer getCodigoCliente() {
return codigoCliente;
}
public void setCodigoCliente(Integer codigoCliente) {
this.codigoCliente = codigoCliente;
}
public Date getDataVenda() {
return dataVenda;
}
public void setDataVenda(Date dataVenda) {
this.dataVenda = dataVenda;
}
public Integer getQuantidade() {
return quantidade;
}
public void setQuantidade(Integer quantidade) {
this.quantidade = quantidade;
}
public String getNomeCliente() {
return nomeCliente;
}
public void setNomeCliente(String nomeCliente) {
this.nomeCliente = nomeCliente;
}
public String getNomeProduto() {
return nomeProduto;
}
public void setNomeProduto(String nomeProduto) {
this.nomeProduto = nomeProduto;
}
}
a classe VendasControl:
String cadastraVenda = "INSERT INTO VENDAS (CODIGO, PRODUTOS_CODIGO, CLIENTES_CODIGO, DATA_VENDA, QUANTIDADE)" +
" VALUES(?,?,?,?,?)";
String consultaVendas = "SELECT Vendas.codigo As codigo, Clientes.Nome AS NOMECLIENTE, produtos.Nome as NOMEPRODUTO, vendas.Quantidade " +
"AS QUANTIDADE, vendas.Data_Venda AS DATA_VENDA "+
"FROM (Vendas LEFT JOIN Clientes ON Vendas.clientes_codigo = Clientes.codigo)" +
"LEFT JOIN Produtos ON Vendas.produtos_codigo= Produtos.codigo" +
"WHERE vendas.Data_Venda BETWEEN ? AND ? ";
AcessoMySql bd = new AcessoMySql();
public List<VendasBean> listarVendas(Date dataInicial, Date dataFinal){
try {
pstm = bd.conectar().prepareStatement(consultaVendas);
pstm.setDate(1, dataInicial);
pstm.setDate(2, dataFinal);
rs = pstm.executeQuery();
List<VendasBean> venda = new ArrayList<VendasBean>();
while (rs.next()){
VendasBean vb = new VendasBean();
vb.setCodigo(rs.getInt("codigo"));
vb.setNomeCliente(rs.getString(" NOMECLIENTE"));
vb.setNomeProduto(rs.getString("NOMEPRODUTO"));
vb.setQuantidade(rs.getInt("quantidade"));
vb.setDataVenda(rs.getDate("data_venda"));
venda.add(vb);
}
bd.desconectar();
return venda;
} catch (SQLException ex) {
ex.printStackTrace();
}
return null;
}
e o meu formulário ConsultarVendas:
private void pesquisarVendas(){
VendasControl vc = new VendasControl();
if (ftfDataInicio.getValue() == null){
JOptionPane.showMessageDialog(this, "Informe a data Inicial!");
ftfDataInicio.requestFocus();
} else if (ftfDataFim.getValue() == null){
JOptionPane.showMessageDialog(this, "Informe a data Final!");
ftfDataFim.requestFocus();
} else {
while (tmVendas.getRowCount() > 0){
tmVendas.removeRow(0);
}
SimpleDateFormat formato = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date dataInicio = (java.util.Date) ftfDataInicio.getValue();
System.out.println(formato.format(dataInicio));
java.util.Date dataFim = (java.util.Date) ftfDataFim.getValue();
vendas = vc.listarVendas(Date.valueOf(formato.format(dataInicio)), Date.valueOf(formato.format(dataFim)));
String [] campos = new String[] {null, null, null, null, null};
for (int i = 0; i < vendas.size(); i++){
tmVendas.addRow(campos);
tmVendas.setValueAt(vendas.get(i).getCodigo(), i, 0);
tmVendas.setValueAt(vendas.get(i).getNomeCliente(), i, 1);
tmVendas.setValueAt(vendas.get(i).getNomeProduto(), i, 2);
tmVendas.setValueAt(vendas.get(i).getQuantidade(), i, 3);
tmVendas.setValueAt(vendas.get(i).getDataVenda(), i, 4);
}
if (vendas.size() == 0){
JOptionPane.showMessageDialog(this, "Nenhum registro encontrado!");
}
}
}
o meu problema é o seguinte , eu queria listar na minha consulta o codigo da venda , cliente , produto , quantidade
e data , mais ele gera uma exceção, creio eu que o erro na String consultaVendas ,que está sendo usado um join ,pois, tenho a tabela vendas que esta relacionada com produtos e clientes, mais não to conseguindo fazer essa consulta me ajudem por favor;