Olá pessoal estou com o seguinte problema:
Grave: Servlet.service() for servlet [br.com.OdontoEstetica.jdbc.Servlet.ServletAgendaConsulta] in context with path [/OdontoEstetica] threw exception
java.lang.RuntimeException: java.sql.SQLException: Column count doesn't match value count at row 1
at br.com.OdontoEstetica.jdbc.DAO.ConsultasDAO.adiciona(ConsultasDAO.java:55)
at br.com.OdontoEstetica.jdbc.Servlet.ServletAgendaConsulta.service(ServletAgendaConsulta.java:112)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.sql.SQLException: Column count doesn't match value count at row 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3609)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3541)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2624)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2127)
at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1362)
at br.com.OdontoEstetica.jdbc.DAO.ConsultasDAO.adiciona(ConsultasDAO.java:52)
... 18 more
classe java
package br.com.OdontoEstetica.jdbc.DAO;
/**
* @author Lilian
*
*/
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import br.com.OdontoEstetica.jdbc.ConnectionFactory;
import br.com.OdontoEstetica.jdbc.modelo.Consultas;
public class ConsultasDAO {
private Connection connection;
public ConsultasDAO(){
this.connection = new ConnectionFactory().getConnection();
}
public void adiciona(Consultas consultas){
String sql = "insert into agenda_consulta(codPaciente, nomePaciente, rg, cpf, datanascimento, endereco, telefone, codFuncionario, nomeFuncionario, servico, dataHoraConsulta, codProduto, nomeProduto, preco, status) values(?, ?, ?, ?, ? , ?, ?, ?, ?, ?, ?, ? , ?) ";
try{
// PreparedStatement para inserção
PreparedStatement stmt = connection.prepareStatement(sql);
//seta os valores
stmt.setInt(1, consultas.getCodPaciente());
stmt.setString(2, consultas.getNomePaciente());
stmt.setString(3,consultas.getRG());
stmt.setString(4,consultas.getCPF());
stmt.setDate(5,(java.sql.Date) new Date(consultas.getDataNascimento().getTimeInMillis()));
stmt.setString(6,consultas.getEnderecoPaciente());
stmt.setLong(7,consultas.getTelefonePaciente());
stmt.setString(8,consultas.getServico());
stmt.setDate(9, (java.sql.Date) new Date(consultas.getDataNascimento().getTimeInMillis()));
stmt.setInt(10, consultas.getCodProduto());
stmt.setString(11,consultas.getNomeProduto());
stmt.setDouble(12, consultas.getValorConsulta());
stmt.setBoolean(13,consultas.isStatus());
//executa
stmt.execute();
stmt.close();
}catch (SQLException e){
throw new RuntimeException(e);
}
}
public void altera (Consultas consultas){
String sql = "update agenda_consulta set codPaciente= ?, nomePaciente= ?, rg= ?, cpf= ?, datanascimento= ?, endereco= ?, telefone= ?, codFuncionario= ?, nomeFuncionario= ?, servico= ?, dataHoraConsulta= ?, codProduto= ?, nomeProduto= ?, preco= ?, status where codConsulta= ?";
try{
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setInt(1, consultas.getCodPaciente());
stmt.setString(2, consultas.getNomePaciente());
stmt.setString(3,consultas.getRG());
stmt.setString(4,consultas.getCPF());
stmt.setDate(5, (java.sql.Date) new Date(consultas.getDataNascimento().getTimeInMillis()));
stmt.setString(6,consultas.getEnderecoPaciente());
stmt.setLong(7,consultas.getTelefonePaciente());
stmt.setString(8,consultas.getServico());
stmt.setDate(9, (java.sql.Date) new Date(consultas.getDataNascimento().getTimeInMillis()));
stmt.setInt(10, consultas.getCodProduto());
stmt.setString(11,consultas.getNomeProduto());
stmt.setDouble(12, consultas.getValorConsulta());
stmt.setBoolean(13,consultas.isStatus());
stmt.setInt(14,consultas.getCodConsulta());
stmt.execute();
stmt.close();
}catch (SQLException e){
throw new RuntimeException(e);
}
}
public void remove(Consultas consultas){
try{
PreparedStatement stmt = connection.prepareStatement("delete from agenda_consulta where codConsulta= ?");
stmt.setInt(1,consultas.getCodConsulta());
stmt.execute();
stmt.close();
}catch (SQLException e){
throw new RuntimeException(e);
}
}
}
Alguem poderia me ajudar?