Dúvida em Java usando o JFreeChart[RESOLVIDO]

Opa, vim aqui pra tirar uma duvida, ver se algum de vocês sabem o porquê de estar acontecendo.
Meu gráfico só atualiza se o valor que eu inseri for maior que o valor que já tem no gráfico.

Minha tabela com todas as vendas, é possível ver que tem mais de 7 vendas registradas…
image

Meu gráfico

mostra o código aí chefia

depois que eu escrevi a dúvida eu resolvi heheheh, desculpa ae, vou colocar o resolvido no post

1 curtida

O que era?

meu gráfico tava sendo feito por um método que só pegava 2 atributos(que era o preço da venda e o produto), adicionei os códigos de venda como atributo e agora aparece todas as vendas… o que eu estou em duvida pra fazer é como fazer uma consulta por data no mysql. Por ex: Pesquisar as vendas do mÊs de outubro… teria alguma ideia?

Entendi… Sua coluna no banco está como Date ou varchar?

esta como DATETIME

Vc pode pesquisar por intervalos:

SELECT * FROM tabela WHERE sua_data BETWEEN '2020-10-01' AND '2020-10-31'

Ou pelo mes diretamente:

SELECT 
    EXTRACT(MONTH FROM sua_data) AS mes_venda
WHERE mes_venda = 10
FROM tabela

bom…
Fiz pelo método do mês…


     public List<Vendas> searchByData(String mes) {
        Connection con = ConectionFactory.getConnection();
        PreparedStatement stmt = null;
        ResultSet rs = null;
          List<Vendas> v = new ArrayList<>();
        try {
            stmt = con.prepareStatement("SELECT * FROM tabela_vendas  EXTRACT(MONTH FROM data) AS mes_venda WHERE mes_venda ?");
            stmt.setString(1, "%" + mes + "%");
            rs = stmt.executeQuery();
            
          
            while(rs.next()){
                Vendas venda = new Vendas();
                venda.setCodProduto(rs.getInt("idProd"));
                venda.setCodVenda(rs.getInt("idtabela_vendas"));
                venda.setDescProduto(rs.getString("descricao"));
                venda.setPrecoPago(rs.getDouble("preco"));
                venda.setQuantidade(rs.getInt("quantidade"));
                venda.setDataVenda(rs.getDate("data"));
                
                v.add(venda);
                
            }
        } catch (SQLException ex) {
            Logger.getLogger(VendasDao.class.getName()).log(Level.SEVERE, null, ex);
        }finally{
            ConectionFactory.closeConnection(con, stmt, rs);
        }
        return v; 
                
    }

O erro que está me retornando


java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'EXTRACT(MONTH FROM data) AS mes_venda WHERE mes_venda '%10%'' at line 1
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeQuery(ClientPreparedStatement.java:1003)
	at sistemamercados.dao.VendasDao.searchByData(VendasDao.java:128)
	at sistemamercados.view.TelaVendaMes.readJTable(TelaVendaMes.java:40)

Meu método que faz o read da tabela

[code]

public void readJTable(String busca){
          DefaultTableModel modelo = (DefaultTableModel) jTable1.getModel();
    modelo.setNumRows(0);
    VendasDao dadao = new VendasDao();
    dadao.searchByData(String.valueOf(jComboBox1.getSelectedIndex() + 1)).forEach((d) -> {
        modelo.addRow(new Object[]{
            d.getCodVenda(),
            d.getCodProduto(),
            d.getDescProduto(),
            d.getQuantidade(),
            d.getPrecoPago(),
            d.getDataVenda()
  
     

        });
    });

Resolvi kkk.

[code]

        stmt = con.prepareStatement("SELECT * FROM tabela_vendas WHERE MONTH(data) = ?");
        stmt.setInt(1,  mes );
        rs = stmt.executeQuery();

Fiz assim

1 curtida