Estou fazendo um CRUD com mysql + Netbeans… O modelo é relacional, e estou tendo problemas com a chave estranheira… Se alguém puder me ajudar, agradeço… segue um pedaço do código …
ESSE é p erro que está dando:Erro: java.sql.SQLException: Field ‘endereco_idEndereco’ doesn’t have a default value
(OBS: as chaves primarias estao como auto incremento)
import connection.ConnectionFactory;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import modelo.Cliente;
import modelo.Endereco;
/**
*
-
@author Samuelson
*/
public class ClienteDAO {private Connection con = null;
public ClienteDAO() {
con = ConnectionFactory.getConnection();
}public boolean save(Cliente cliente) {
String sql = "INSERT INTO cliente(Cpf , Cnpj , Nome , Email ,Telefone ,Sexo) VALUES(?,?,?,?,?,?)"; PreparedStatement stmt = null; try { stmt = con.prepareStatement(sql); stmt.setString(1, cliente.getCpf()); stmt.setString(2, cliente.getCnpj()); stmt.setString(3, cliente.getNome()); stmt.setString(4, cliente.getEmail()); stmt.setString(5, cliente.getTelefone()); stmt.setString(6, cliente.getSexo()); stmt.executeUpdate(); return true; } catch (SQLException ex) { System.err.println("Erro: " + ex); return false; } finally { ConnectionFactory.closeConnection(con, stmt); }
}
public List findAll() {
String sql = "SELECT * FROM cliente c inner join\n" +
“endereco e on c.fkEndereco= e.idEndereco;”;
PreparedStatement stmt = null;
ResultSet rs = null;
List<Cliente> clientes = new ArrayList<>();
try {
stmt = con.prepareStatement(sql);
rs = stmt.executeQuery();
while (rs.next()) {
Cliente cliente = new Cliente();
cliente.setCnpj(rs.getString("CNPJ"));
cliente.setCpf(rs.getString("CPF"));
cliente.setEmail(rs.getString("Email"));
cliente.setNome(rs.getString("Nome"));
cliente.setSexo(rs.getString("Sexo"));
cliente.setTelefone(rs.getString("Telefone"));
Endereco endereco = new Endereco ();
endereco.setRua(rs.getString("Rua"));
endereco.setNumero(rs.getString("Numero"));
endereco.setBairro(rs.getString("Bairro"));
endereco.setCidade(rs.getString("Cidade"));
endereco.setUF(rs.getString("UF"));
cliente.setEndereco_idEndereco(endereco);
clientes.add(cliente);
}
} catch (SQLException ex) {
System.err.println("Erro: " + ex);
} finally {
ConnectionFactory.closeConnection(con, stmt, rs);
}
return clientes;
}
public boolean update(Cliente cliente) {
String sql = "UPDATE cliente SET Cpf = ?,Cnpj= ? , Nome=? , Email= ?, Telefone = ?, Sexo = ?,Endereco_idEndereco=? WHERE idCliente = ?";
PreparedStatement stmt = null;
try {
stmt = con.prepareStatement(sql);
stmt.setString(1, cliente.getCpf());
stmt.setString(2, cliente.getCnpj());
stmt.setString(3, cliente.getNome());
stmt.setString(4, cliente.getEmail());
stmt.setString(5, cliente.getTelefone());
stmt.setString(6, cliente.getSexo());
stmt.setInt(7, cliente.getEndereco_idEndereco().getIdEndereco());
stmt.setInt(8, cliente.getIdCliente());
stmt.executeUpdate();
return true;
} catch (SQLException ex) {
System.err.println("Erro: " + ex);
return false;
} finally {
ConnectionFactory.closeConnection(con, stmt);
}
}
}
package dao;
import connection.ConnectionFactory;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import modelo.Endereco;
/**
-
CRUD
-
@author Samuelson
*/
public class EnderecoDAO {private Connection con = null;
public EnderecoDAO() {
con = ConnectionFactory.getConnection();
}public boolean save (Endereco endereco) {
String sql = "INSERT INTO endereco(Rua,Numero,Bairro,cidade, UF) VALUES(?,?,?,?,?)"; PreparedStatement stmt = null; try { stmt = con.prepareStatement(sql); stmt.setString(1, endereco.getRua()); stmt.setString(2, endereco.getNumero()); stmt.setString(3, endereco.getBairro()); stmt.setString(4, endereco.getCidade()); stmt.setString(5, endereco.getUF()); stmt.executeUpdate(); return true; } catch (SQLException ex) { System.err.println("Erro: " + ex); return false; } finally { ConnectionFactory.closeConnection(con, stmt); }
}
public List findAll() {
String sql = "SELECT * FROM endereco"; PreparedStatement stmt = null; ResultSet rs = null; List<Endereco> enderecos = new ArrayList<>(); try { stmt = con.prepareStatement(sql); rs = stmt.executeQuery(); while (rs.next()) { Endereco endereco = new Endereco(); endereco.setRua(rs.getString("Rua")); endereco.setNumero(rs.getString("Numero")); endereco.setBairro(rs.getString("Bairro")); endereco.setCidade(rs.getString("Cidade")); endereco.setUF(rs.getString("UF")); enderecos.add(endereco); } } catch (SQLException ex) { System.err.println("Erro: " + ex); } finally { ConnectionFactory.closeConnection(con, stmt, rs); } return enderecos;
}
public boolean update(Endereco endereco) {
String sql = " UPDATE endereco SET Rua = ?,Numero = ? , Bairro = ?, Cidade = ?, UF = ? WHERE idEndereco = ?"; PreparedStatement stmt = null; try { stmt = con.prepareStatement(sql); stmt.setString(1, endereco.getRua()); stmt.setString(2, endereco.getNumero()); stmt.setString(3, endereco.getBairro()); stmt.setString(4, endereco.getCidade()); stmt.setString(5, endereco.getUF()); stmt.setInt(6, endereco.getIdEndereco()); stmt.executeUpdate(); return true; } catch (SQLException ex) { System.err.println("Erro: " + ex); return false; } finally { ConnectionFactory.closeConnection(con, stmt); }
}
public boolean delete(Endereco endereco) {
String sql = "DELETE FROM endereco WHERE id = ?"; PreparedStatement stmt = null; try { stmt = con.prepareStatement(sql); stmt.setInt(1, endereco.getIdEndereco()); stmt.executeUpdate(); return true; } catch (SQLException ex) { System.err.println("Erro: " + ex); return false; } finally { ConnectionFactory.closeConnection(con, stmt); }
}