Problema na Inserção no Banco de Dados

2 respostas
jmedeiros

Pessoal!

Estou utilizando um banco de dados MySQL, quando vou fazer uma inserção a seguinte mensagem de erro aparece:

java.sql.SQLException: Column count doesn't match value count at row 1

Pesquisei um pouco e ouvi dizer que esse erro aparece quando uma tabela suporta 3 tipos de dados e eu insiro 4 por exemplo, mas mesmo assim não consegui resolver o problema!

Alguém poderia me ajudar!

Aqui vai trechos do meu código.

Código Java
public boolean inserirCadastro(Cadastro c) {
        try{
            
            
            conexao.makeConexao();
            
            if(!conexao.conexaoPersiste())
                return false;
            
            String query = "INSERT INTO cadastro(cod_escola, cod_diretoria, num_oficio, data_oficio, data_visita" +
                    "resumo_oficio, situacao, problemas,solucao,outros) VALUES(?,?,?,?,?,?,?,?,?,?)";
            
            ps = conexao.getConexao().prepareStatement(query);
            
           
            ps.setInt(1,c.getEscola().getCodigo());
            ps.setInt(2, c.getDiretoria().getCodigo());
            ps.setString(3,c.getNumeroOficio());
            ps.setString(4,c.getDataOficio());
            ps.setString(5,c.getDataVisita());
            ps.setString(6,c.getResumoOficio());
            ps.setString(7,c.getSituacao());
            ps.setString(8,c.getProblemas());
            ps.setString(9,c.getSolucao());
            ps.setString(10,c.getOutros());
            
            
            
            
            ps.execute();
            
            ps.close();
            conexao.commitDados();
            return true;
            
        } catch(SQLException erro) {
        	System.err.println(erro);
        	System.err.println("Erro na Inserção");
        	
            conexao.rollBack();
            
            return false;
        }
        
    }
Script do Banco
CREATE TABLE cadastro(
cod_cadastro int not null auto_increment,
cod_escola int ,
cod_diretoria int,
num_oficio varchar(16),
data_oficio date,
data_visita date,
resumo_oficio varchar(200),
situacao varchar(200),
problemas varchar(200),
solucao varchar(200),
outros varchar(200),
PRIMARY KEY(cod_cadastro),
FOREIGN KEY(cod_escola) references escola,
FOREIGN KEY(cod_diretoria) references escola
);

2 Respostas

jmedeiros

Galera resolvi o problema!

Era uma maldita virgula entre data_visita e resumo_oficio!

Valeu a Atenção!

JPinhead

String query = "INSERT INTO cadastro(cod_escola, cod_diretoria, num_oficio, data_oficio, data_visita" + "resumo_oficio, situacao, problemas,solucao,outros) VALUES(?,?,?,?,?,?,?,?,?,?)";

cara acho q falta uma virgula depois de

data_oficio, data_visita," +

espero ter ajudado!!

Criado 8 de abril de 2005
Ultima resposta 8 de abr. de 2005
Respostas 2
Participantes 2