Gostaria de alterar somente o valor de um único atributo do BD (saldo), na verdade gostaria de colocar o valor(0.00) neste atributo. Fiz um método mais não estou conseguindo atualizar o valor do atributo saldo no BD. Abaixo está descrito o método:
//metodo para zerar saldo de contas de receita e despesa
public void zeraSaldo() throws SQLException {
String sql = "update contas set consaldo=0.00 where tipocodigo=1";
PreparedStatement ps = null;
Contas contas = new Contas();
try {
ps = connection.prepareStatement(sql);
ps.setString(1, contas.getConDescricao());
ps.setInt(2, contas.getTipoCodigo());
ps.setDouble(3, contas.getConSaldo());/*GOSTARIA DE ATUALIZAR OU SEJA DE COLOCAR O VALOR O.OO NESTE ATRIBUTO, QUERO DIZER NESTE OBJETO, MAS ATUALIZAR ESTE VALOR NO BD.*/
ps.setInt(4, contas.getConCodigo());
ps.execute();
} catch (SQLException ex) {
Logger.getLogger(ContaDAO.class.getName()).log(Level.SEVERE, null, ex);
} finally {
connection.close();
ps.close();
}
/*String sql = "select * from contas where tipocodigo = 1 order by condescricao";
PreparedStatement ps = null;
ResultSet rs = null;
List<Contas> listaContas = new ArrayList<Contas>();
try {
ps = connection.prepareStatement(sql);
rs = ps.executeQuery();
while (rs.next()) {
Contas contas = new Contas();
contas.setConCodigo(rs.getInt("concodigo"));
contas.setConDescricao(rs.getString("condescricao"));
contas.setTipoCodigo(rs.getInt("tipocodigo"));
contas.setConSaldo(rs.getDouble("consaldo"));
listaContas.add(contas);
//System.out.println("Conta: " + contas.getConDescricao() +" ---> Saldo: "+contas.getConSaldo());
if(contas.getConSaldo() < 0){
System.out.println("Conta: " + contas.getConDescricao() +" ---> Saldo: "+contas.getConSaldo());
contas.setConSaldo(rs.getDouble(0.00));
System.out.println("Saldo apos zerar Conta: " + contas.getConDescricao() +" ---> Saldo: "+contas.getConSaldo());
}
}
} catch (SQLException erro) {
Logger.getLogger(ContaDAO.class.getName()).log(Level.SEVERE, null, erro);
} finally {
//connection.close();
//ps.close();
//rs.close();
}*/
}
O console do NetBeans mostra o seguinte erro:
Mar 14, 2017 7:48:11 PM br.com.jairo.dao.ContaDAO zeraSaldo
SEVERE: null
org.postgresql.util.PSQLException: O índice da coluna está fora do intervalo: 1, número de colunas: 0.
at org.postgresql.core.v3.SimpleParameterList.bind(SimpleParameterList.java:52)
at org.postgresql.core.v3.SimpleParameterList.setNull(SimpleParameterList.java:129)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setString(AbstractJdbc2Statement.java:1241)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setString(AbstractJdbc2Statement.java:1230)
at br.com.jairo.dao.ContaDAO.zeraSaldo(ContaDAO.java:335)
at br.com.jairo.controle.Fechamento.processRequest(Fechamento.java:43)
at br.com.jairo.controle.Fechamento.doGet(Fechamento.java:61)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1555)
at java.lang.Thread.run(Thread.java:722)
Alguem pode me mostrar onde estou errando!