Boa tarde, sou iniciante na programção java web, estou fazendo um sistema com base em um curso online que contratei, no caso o professor esta fazendo um sistema para uma farmacia, e eu estou fazendo para um supermercado, no caso eu criei uma classe fornecedores:
package br.com.farmacia.domain;
public class Fornecedores {
private long codigo;
private String descricao; // nome
private String cnpj;
(gets and seters)
ai criei uma classe fornecedores dao , e o metodo salvar no banco:
public void salvar(Fornecedores f) throws SQLException{ // essa classe vai salvar os dados do domain no bd
StringBuilder sql= new StringBuilder(); // concatena valores
sql.append("INSERT INTO fornecedores ");
sql.append("(descricao,cnpj) ");
sql.append("VALUES(?,?) "); // 4 atributos
Connection conexao = ConexaoFactory.conectar();
PreparedStatement comando = conexao.prepareStatement(sql.toString());
comando.setString(1, f.getDescricao());
comando.setString(2, f.getCnpj());
comando.executeUpdate();
}
ai eu chamei o main para fazer teste se esta realmente salvando no banco:
public static void main(String[] args) {
Fornecedores f1= new Fornecedores();
f1.setDescricao("coca-cola");
Fornecedores f2= new Fornecedores();
f2.setCnpj("231-21323");
FornecedoresDAO fdao = new FornecedoresDAO();
try{
fdao.salvar(f1);
fdao.salvar(f2);
System.out.println("salvo com sucesso");
} catch (SQLException e){
System.out.println("Erro ao salvar");
e.printStackTrace();
}
porem, sempre que eu vou executar, da a seguinte mensagem ::
Erro ao salvar
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column ‘cnpj’ cannot be null
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:404)
at com.mysql.jdbc.Util.getInstance(Util.java:387)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:934)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3966)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3902)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2526)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2673)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2549)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1861)
at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2073)
at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2009)
at com.mysql.jdbc.PreparedStatement.executeLargeUpdate(PreparedStatement.java:5098)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1994)
at br.com.farmacia.DAO.FornecedoresDAO.salvar(FornecedoresDAO.java:26)
at br.com.farmacia.DAO.FornecedoresDAO.main(FornecedoresDAO.java:164)
sendo que no meu banco de dados a coluna cnpj esta como not null, e eu não faço a minima ideia do que esta acontecendo :s help !!!
por favor se eu estiver falando alguma merda, ignorem, sou iniciante ainda
valeu !