O meu problema é o seguinte: eu tenho um programa em que você insere a data inicial e a data final e o programa faz uma consulta sql e retorna num jTextArea um relatório.
No entanto, acontece o seguinte problema: as minhas sqls retornam null quando eu digito qualquer coisa nos meus jTextFields. Mas se eu uso um campo jTextField, já com a data inicial e final o programa faz a consulta corretamente, o que me faz pensar que eu não estou enviando a data corretamente.
Será este o problema? Eis meu código:
Form RELATORIO
[code]
RelatoriosAction relact;
// BOTAO PESQUISAR
private void pesquisar(java.awt.event.ActionEvent evt) {
try {
// Seta no meu jTextArea o resultado da consulta e envia também a data inicial e a data final da consulta
jTAvisor.setText(relact.capturaDatas(jTF_dataInicial2.getText(), jTF_dataFinal2.getText()));
} catch (SQLException ex) {
Logger.getLogger(jT_Relatorios.class.getName()).log(Level.SEVERE, null, ex);
}[/code]
Classe REALATORIOACTION
[code]
// Este daqui é um método que passa a data
//para o formato do banco de dados ano-mes-dia
FormataCampos camp;
// Esta classe recebe a data inicial e final dos jTextFields e faz as consultas nos métodos
public String capturaDatas(String jTF_dataInicial, String jTF_dataFinal) throws SQLException {
visor.setText("");
RelatoriosBean add = new RelatoriosBean();
add.setData_inicial(camp.formatDate(jTF_dataInicial));
add.setData_final(camp.formatDate(jTF_dataFinal));
// Referência à classe que contém os métodos SQL
RelatoriosDao dao = new RelatoriosDao();
String retorna =
"Período: de " + jTF_dataInicial+" até "+jTF_dataFinal
+"\n"
+"\nTotal arrecadado: R$ " + dao.valorVendidos(jTF_dataInicial, jTF_dataFinal)
+"\n Quantidade vendida: " + dao.quantidadeVendidos(jTF_dataInicial, jTF_dataFinal)
+"\n"
+"\n Total gasto: R$ " + dao.valorComprados(jTF_dataInicial, jTF_dataFinal)
+"\n Quantidade comprada: " + dao.quantidadeComprados(jTF_dataInicial, jTF_dataFinal);
return retorna;
}[/code]
Classe REALTORIOSDAO
[code]
// TODOS os meus métodos estão estruturados dessa maneira, por isso só achei necessário colocar este.
//A única coisa que muda nos outros é a SQL
// Retorna quanto foi gasto comprando livros
public String valorVendidos(String dataInicial, String dataFinal) throws SQLException {
String volta = “”;
// String sql
String sql="SELECT SUM(preco_venda) as soma FROM livros where data_venda>= ? and data_venda<= ? ";
// Prepara a conexão
PreparedStatement stmt = (PreparedStatement) this.conexao.prepareStatement(sql);
stmt.setString(1, dataInicial);
stmt.setString(2, dataFinal);
ResultSet rs = stmt.executeQuery();
while (rs.next()){
// Gera a String que será impressa no JTextArea
volta = rs.getString("soma");
// Imprime na tela também e aqui
System.out.println(volta);
}
//Fechando o resultset
rs.close();
//Fecha a conexão
stmt.close();
//Retorna a String para ser impressa
return volta;
}[/code]
O que o programa me retorna é:
[b]
Período: de 01/01/2011 até 03/12/2011
Total arrecadado: R$ null
Quantidade vendida: 0
Total gasto: R$ null
Quantidade comprada: 0[/b]