Pessoal, tenho feito um aplicativo por experiencia(bote experiencia nisso)
vamos lá,
to usando o pattern DAO pra fazer o programa, no link abaixo está o codigo da classe DAO e do Jframe.
oque eu quero fazer é o seguinte:
na parte DAO tem a classe calcula, que tem o código mysql que manda os dados pro banco e retorna o resultado*( esse resultado que eu preciso que apareça no textfield) .
na parte do jframe tem 2 textfield(onde eu coloco as duas datas) e outro textfield(pra mostrar o resultado), tenho também um botão que manda calcular.
problema: não consigo retornar o resultado para o jtextfield.
preciso saber onde estou errando e oque falta pra resolver esse problema.
a ajuda de vocês é de grande importancia.
por que você não faz o seu método calcula(Cheque x1) retornar o cálculo?
no caso , só preciso mudar o void por double?
não… precisa também fazer o return na operação que você quer que retorne…
mas cadê o return no método?
outro detalhe: a sua sql ao que me parece vai retornar apenas 1 valor, que é a soma do campo valor. Então por que fazer um laço? Utilize o if no lugar do while
você também pode retornar o seu objeto x1 pois ele já tem o método setTotal que recebe esta soma
Problema de erros resolvido.
mas ele ta retornando 0.0
e agora?
public double calcula(Cheque x1) throws SQLException {
String sql = "select sum(valor) as Total from cheque where datapag between ? and ?";
PreparedStatement stmt = this.conexao.prepareStatement(sql);
stmt.setString(1, x1.getData1());
stmt.setString(2, x1.getData2());
ResultSet rs = stmt.executeQuery();
double valor1=0;
while (rs.next()) {
valor1 = rs.getDouble("Total");
}
//rs.close();
stmt.close();
return valor1;
}
public class jTSoma extends javax.swing.JFrame {
private double valor1;
private void jBSomaeListaActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
calcular();
jTTotal.setText(""+valor1);
}
public void calcular() {
try {
Cheque x1 = new Cheque();
x1.setDatapag(jTData1.getText());
x1.setDatapag2(jTData2.getText());
ChequeDao dao = new ChequeDao();
valor1 = dao.calcula(x1);
} catch (SQLException ex) {
Logger.getLogger(jTCheque.class.getName()).log(Level.SEVERE, null, ex);
}
}
ta retornando 0.0 pra o textfield