Cordiais saudações, povo do GUJ.
Durante a execução de um insert apareceu o seguinte erro:
Java.sql.SQLException: Column count doesn’t match value count at row 1
Abaixo tem o trecho de código da classe DAO onde ocorre o erro, gostaria que notassem que o arquivo do MySQL tem a chave primaria como integer e possui vários campos boolean. Vou mandar junto a classe MODEL que forma os getters and setters.
package dao;
import model.Usuarios;
import empresaiv.BD;
import java.sql.*;
/**
*
* @author Ronaldo R. Godoi
*/
public class UsuariosDAO {
public Usuarios usuario;
public BD bd;
private PreparedStatement statement;
private ResultSet resultSet;
private String men, sql;
public static final byte INCLUSAO = 1;
public static final byte ALTERACAO = 2;
public static final byte EXCLUSAO = 3;
public UsuariosDAO() {
bd = BD.getInstance();
usuario = new Usuarios();
}
public boolean localizar() {
sql = "select * from usuarios where nome = ?";
try {
statement = bd.connection.prepareStatement(sql);
statement.setString(1, String.valueOf(usuario.getNome()));
resultSet = statement.executeQuery();
resultSet.next();
usuario.setId(Integer.parseInt(resultSet.getString(1)));
usuario.setNome(resultSet.getString(2));
usuario.setSenha(resultSet.getString(3));
usuario.setCadastroClientes(Boolean.valueOf(resultSet.getString(4)));
usuario.setCadastroFornecedores(Boolean.valueOf(resultSet.getString(5)));
usuario.setCadastroProdutos(Boolean.valueOf(resultSet.getString(6)));
usuario.setCadastroCategoria(Boolean.valueOf(resultSet.getString(7)));
usuario.setCadastroEnderecoEntregaCliente(Boolean.valueOf(resultSet.getString(8)));
usuario.setCadastroEnderecoEntregaFornecedor(Boolean.valueOf(resultSet.getString(9)));
usuario.setCadastroFornecedoresProduto(Boolean.valueOf(resultSet.getString(10)));
usuario.setCadastroUnidades(Boolean.valueOf(resultSet.getString(11)));
usuario.setPedidoCliente(Boolean.valueOf(resultSet.getString(12)));
usuario.setPedidoFornecedor(Boolean.valueOf(resultSet.getString(13)));
usuario.setConsultaClientes(Boolean.valueOf(resultSet.getString(14)));
usuario.setConsultaFornecedor(Boolean.valueOf(resultSet.getString(15)));
usuario.setConsultaProduto(Boolean.valueOf(resultSet.getString(16)));
usuario.setConsultaCategoria(Boolean.valueOf(resultSet.getString(17)));
usuario.setConsultaEnderecoEntregaCliente(Boolean.valueOf(resultSet.getString(18)));
usuario.setConsultaEnderecoEntregaFornecedor(Boolean.valueOf(resultSet.getString(19)));
usuario.setRelatorioClientes(Boolean.valueOf(resultSet.getString(20)));
usuario.setRelatorioFornecedor(Boolean.valueOf(resultSet.getString(21)));
usuario.setRelatorioProduto(Boolean.valueOf(resultSet.getString(22)));
usuario.setRelatorioCategoria(Boolean.valueOf(resultSet.getString(23)));
usuario.setRelatorioUnidades(Boolean.valueOf(resultSet.getString(24)));
return true;
} catch(SQLException erro) {
System.out.println("erro: " + erro.toString() + sql + usuario.getId());
return false;
}
}
public String atualizar(int operacao) {
men = "Operação realizada com sucesso!";
try {
if(operacao == INCLUSAO) {
sql = "insert into usuarios values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?,"
+ " ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,"
+ " ?, ?, ?)";
statement = bd.connection.prepareStatement(sql);
//statement.setString(1, categoria.getId());
statement.setString(1,usuario.getNome());
statement.setString(2,usuario.getSenha());
statement.setString(3,String.valueOf(usuario.isCadastroClientes()));
statement.setString(4,String.valueOf(usuario.isCadastroFornecedores()));
statement.setString(5,String.valueOf(usuario.isCadastroProdutos()));
statement.setString(6,String.valueOf(usuario.isCadastroCategoria()));
statement.setString(7,String.valueOf(usuario.isCadastroEnderecoEntregaCliente()));
statement.setString(8,String.valueOf(usuario.isCadastroEnderecoEntregaFornecedor()));
statement.setString(9,String.valueOf(usuario.isCadastroFornecedoresProduto()));
statement.setString(10,String.valueOf(usuario.isCadastroUnidades()));
statement.setString(11,String.valueOf(usuario.isPedidoCliente()));
statement.setString(12,String.valueOf(usuario.isPedidoFornecedor()));
statement.setString(13,String.valueOf(usuario.isConsultaClientes()));
statement.setString(14,String.valueOf(usuario.isConsultaFornecedor()));
statement.setString(15,String.valueOf(usuario.isConsultaProduto()));
statement.setString(16,String.valueOf(usuario.isConsultaCategoria()));
statement.setString(17,String.valueOf(usuario.isConsultaEnderecoEntregaCliente()));
statement.setString(18,String.valueOf(usuario.isConsultaEnderecoEntregaFornecedor()));
statement.setString(19,String.valueOf(usuario.isRelatorioClientes()));
statement.setString(20,String.valueOf(usuario.isRelatorioFornecedor()));
statement.setString(21,String.valueOf(usuario.isRelatorioProduto()));
statement.setString(22,String.valueOf(usuario.isRelatorioCategoria()));
statement.setString(23,String.valueOf(usuario.isRelatorioUnidades()));
} else if(operacao == ALTERACAO) {
sql = "update categorias set nome = ?,"
+ " senha = ?,"
+ " cadastroClientes = ? "
+ " cadastroFornecedores = ?,"
+ " cadastroProdutos = ?,"
+ " cadastroCategoria = ?,"
+ " cadastroEnderecoEntregaCliente = ?,"
+ " cadastroEnderecoEntregaFornecedor = ?,"
+ " cadastroFornecedoresProduto = ?,"
+ " cadastroUnidades = ?,"
+ " pedidoCliente = ?,"
+ " pedidoFornecedor = ?,"
+ " consultaClientes = ?,"
+ " consultaFornecedor = ?,"
+ " consultaProduto = ?,"
+ " consultaCategoria = ?,"
+ " consultaEnderecoEntregaCliente = ?,"
+ " consultaEnderecoEntregaFornecedor = ?,"
+ " relatorioClientes = ?,"
+ " relatorioFornecedor = ?,"
+ " relatorioProduto = ?,"
+ " relatorioCategoria = ?,"
+ " relatorioUnidades = ?"
+ " where id = ?";
statement = bd.connection.prepareStatement(sql);
statement.setString(1, usuario.getNome());
statement.setString(2, usuario.getSenha());
statement.setString(3, String.valueOf(usuario.isCadastroClientes()));
statement.setString(4, String.valueOf(usuario.isCadastroFornecedores()));
statement.setString(5, String.valueOf(usuario.isCadastroProdutos()));
statement.setString(6, String.valueOf(usuario.isCadastroCategoria()));
statement.setString(7, String.valueOf(usuario.isCadastroEnderecoEntregaCliente()));
statement.setString(8, String.valueOf(usuario.isCadastroEnderecoEntregaFornecedor()));
statement.setString(9, String.valueOf(usuario.isCadastroFornecedoresProduto()));
statement.setString(10, String.valueOf(usuario.isCadastroUnidades()));
statement.setString(11, String.valueOf(usuario.isPedidoCliente()));
statement.setString(12, String.valueOf(usuario.isPedidoFornecedor()));
statement.setString(13, String.valueOf(usuario.isConsultaClientes()));
statement.setString(14, String.valueOf(usuario.isConsultaFornecedor()));
statement.setString(15, String.valueOf(usuario.isConsultaProduto()));
statement.setString(16, String.valueOf(usuario.isConsultaCategoria()));
statement.setString(17, String.valueOf(usuario.isConsultaEnderecoEntregaCliente()));
statement.setString(18, String.valueOf(usuario.isConsultaEnderecoEntregaFornecedor()));
statement.setString(19, String.valueOf(usuario.isRelatorioClientes()));
statement.setString(20, String.valueOf(usuario.isRelatorioFornecedor()));
statement.setString(21, String.valueOf(usuario.isRelatorioProduto()));
statement.setString(22, String.valueOf(usuario.isRelatorioCategoria()));
statement.setString(23, String.valueOf(usuario.isRelatorioUnidades()));
statement.setString(24, String.valueOf(usuario.getId()));
} else if(operacao == EXCLUSAO) {
sql = "delete from categorias where id = ?";
statement = bd.connection.prepareStatement(sql);
statement.setString(1, String.valueOf(usuario.getId()));
}
if(statement.executeUpdate() == 0) {
men = "Falha na operação!";
}
} catch (SQLException erro) {
men = "Falha na operação! " + erro.toString()+" "+sql;
}
return men;
}
}
/*
id int AI PK
Nome varchar(50)
senha varchar(50)
cadastroClientes tinyint(1)
cadastroFornecedores tinyint(1)
cadastroProdutos tinyint(1)
cadastroCategoria tinyint(1)
cadastroEnderecoEntregaCliente tinyint(1)
cadastroEnderecoEntregaFornecedor tinyint(1)
cadastroFornecedoresProduto tinyint(1)
cadastroUnidades tinyint(1)
pedidoCliente tinyint(1)
pedidoFornecedor tinyint(1)
consultaClientes tinyint(1)
consultaFornecedor tinyint(1)
consultaProduto tinyint(1)
consultaCategoria tinyint(1)
consultaEnderecoEntregaCliente tinyint(1)
consultaEnderecoEntregaFornecedor tinyint(1)
relatorioClientes tinyint(1)
relatorioFornecedor tinyint(1)
relatorioProduto tinyint(1)
relatorioCategoria tinyint(1)
relatorioUnidades tinyint(1)
*/
Separação das duas classes DAO e MODEL
package model;
/**
*
* @author Ronaldo Rodrigues Godoi
*/
public class Usuarios {
private int id;
private String nome, senha;
private boolean cadastroClientes, cadastroFornecedores, cadastroProdutos,
cadastroCategoria, cadastroEnderecoEntregaCliente,
cadastroEnderecoEntregaFornecedor, cadastroFornecedoresProduto,
cadastroUnidades, pedidoCliente, pedidoFornecedor, consultaClientes,
consultaFornecedor, consultaProduto, consultaCategoria,
consultaEnderecoEntregaCliente, consultaEnderecoEntregaFornecedor,
relatorioClientes, relatorioFornecedor, relatorioProduto,
relatorioCategoria, relatorioUnidades;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public boolean isCadastroClientes() {
return cadastroClientes;
}
public void setCadastroClientes(boolean cadastroClientes) {
this.cadastroClientes = cadastroClientes;
}
public boolean isCadastroFornecedores() {
return cadastroFornecedores;
}
public void setCadastroFornecedores(boolean cadastroFornecedores) {
this.cadastroFornecedores = cadastroFornecedores;
}
public boolean isCadastroProdutos() {
return cadastroProdutos;
}
public void setCadastroProdutos(boolean cadastroProdutos) {
this.cadastroProdutos = cadastroProdutos;
}
public boolean isCadastroCategoria() {
return cadastroCategoria;
}
public void setCadastroCategoria(boolean cadastroCategoria) {
this.cadastroCategoria = cadastroCategoria;
}
public boolean isCadastroEnderecoEntregaCliente() {
return cadastroEnderecoEntregaCliente;
}
public void setCadastroEnderecoEntregaCliente(boolean cadastroEnderecoEntregaCliente) {
this.cadastroEnderecoEntregaCliente = cadastroEnderecoEntregaCliente;
}
public boolean isCadastroEnderecoEntregaFornecedor() {
return cadastroEnderecoEntregaFornecedor;
}
public void setCadastroEnderecoEntregaFornecedor(boolean cadastroEnderecoEntregaFornecedor) {
this.cadastroEnderecoEntregaFornecedor = cadastroEnderecoEntregaFornecedor;
}
public boolean isCadastroFornecedoresProduto() {
return cadastroFornecedoresProduto;
}
public void setCadastroFornecedoresProduto(boolean cadastroFornecedoresProduto) {
this.cadastroFornecedoresProduto = cadastroFornecedoresProduto;
}
public boolean isCadastroUnidades() {
return cadastroUnidades;
}
public void setCadastroUnidades(boolean cadastroUnidades) {
this.cadastroUnidades = cadastroUnidades;
}
public boolean isPedidoCliente() {
return pedidoCliente;
}
public void setPedidoCliente(boolean pedidoCliente) {
this.pedidoCliente = pedidoCliente;
}
public boolean isPedidoFornecedor() {
return pedidoFornecedor;
}
public void setPedidoFornecedor(boolean pedidoFornecedor) {
this.pedidoFornecedor = pedidoFornecedor;
}
public boolean isConsultaClientes() {
return consultaClientes;
}
public void setConsultaClientes(boolean consultaClientes) {
this.consultaClientes = consultaClientes;
}
public boolean isConsultaFornecedor() {
return consultaFornecedor;
}
public void setConsultaFornecedor(boolean consultaFornecedor) {
this.consultaFornecedor = consultaFornecedor;
}
public boolean isConsultaProduto() {
return consultaProduto;
}
public void setConsultaProduto(boolean consultaProduto) {
this.consultaProduto = consultaProduto;
}
public boolean isConsultaCategoria() {
return consultaCategoria;
}
public void setConsultaCategoria(boolean consultaCategoria) {
this.consultaCategoria = consultaCategoria;
}
public boolean isConsultaEnderecoEntregaCliente() {
return consultaEnderecoEntregaCliente;
}
public void setConsultaEnderecoEntregaCliente(boolean consultaEnderecoEntregaCliente) {
this.consultaEnderecoEntregaCliente = consultaEnderecoEntregaCliente;
}
public boolean isConsultaEnderecoEntregaFornecedor() {
return consultaEnderecoEntregaFornecedor;
}
public void setConsultaEnderecoEntregaFornecedor(boolean consultaEnderecoEntregaFornecedor) {
this.consultaEnderecoEntregaFornecedor = consultaEnderecoEntregaFornecedor;
}
public boolean isRelatorioClientes() {
return relatorioClientes;
}
public void setRelatorioClientes(boolean relatorioClientes) {
this.relatorioClientes = relatorioClientes;
}
public boolean isRelatorioFornecedor() {
return relatorioFornecedor;
}
public void setRelatorioFornecedor(boolean relatorioFornecedor) {
this.relatorioFornecedor = relatorioFornecedor;
}
public boolean isRelatorioProduto() {
return relatorioProduto;
}
public void setRelatorioProduto(boolean relatorioProduto) {
this.relatorioProduto = relatorioProduto;
}
public boolean isRelatorioCategoria() {
return relatorioCategoria;
}
public void setRelatorioCategoria(boolean relatorioCategoria) {
this.relatorioCategoria = relatorioCategoria;
}
public boolean isRelatorioUnidades() {
return relatorioUnidades;
}
public void setRelatorioUnidades(boolean relatorioUnidades) {
this.relatorioUnidades = relatorioUnidades;
}
}
/*
id int AI PK
Nome varchar(50)
senha varchar(50)
cadastroClientes tinyint(1)
cadastroFornecedores tinyint(1)
cadastroProdutos tinyint(1)
cadastroCategoria tinyint(1)
cadastroEnderecoEntregaCliente tinyint(1)
cadastroEnderecoEntregaFornecedor tinyint(1)
cadastroFornecedoresProduto tinyint(1)
cadastroUnidades tinyint(1)
pedidoCliente tinyint(1)
pedidoFornecedor tinyint(1)
consultaClientes tinyint(1)
consultaFornecedor tinyint(1)
consultaProduto tinyint(1)
consultaCategoria tinyint(1)
consultaEnderecoEntregaCliente tinyint(1)
consultaEnderecoEntregaFornecedor tinyint(1)
relatorioClientes tinyint(1)
relatorioFornecedor tinyint(1)
relatorioProduto tinyint(1)
relatorioCategoria tinyint(1)
relatorioUnidades tinyint(1)
*/
O que está errado para não ocorrer a inserção do registro?
Atenciosamente,
Ronaldo