Salve, assisti os videos, na minha cabeça era necessário a criação de uma função no banco de dados e chamar por ela, mas, fiz as modificações aqui, e parece que deu certo, vou tentar melhorar, só fiquei meio inconformado por precisar usar uma função para recuperar o Id do banco de dados para criar a chave estrangeira na tabela contatos, mas, valeu a pena esse conhecimento, meu método para gravar empresa e seus contatos ficou assim.
public boolean add(Empresa obj, ArrayList<Contato> contatos){
PreparedStatement pstm = null;
Connection con = ConnectionBank.getConnetion();
String sql = "INSERT INTO empresa (FkLogradouro, RazaoSocial, NomeFantasia, CNPJ, IE, IM, NumLocal, DataHora, Excluido) VALUES (?, ?, ?, ?, ?, ?, ?, Now(), ?);";
String sql1 = "INSERT INTO Contato (FkPessoa, FkEmpresa, TipoContato, Descricao, DataHora, Excluido) VALUES (?, ?, ?, ?, Now(), ?);";
try
{
con.setAutoCommit(false);
pstm = con.prepareStatement(sql);
pstm.setInt(1, obj.getFkLogradouro());
pstm.setString(2, obj.getRazaoSocial());
pstm.setString(3, obj.getNomeFantasia());
pstm.setString(4, obj.getCNPJ());
pstm.setString(5, obj.getIE());
pstm.setString(6, obj.getIM());
pstm.setString(7, obj.getNumLocal());
pstm.setString(8, obj.getExcluido());
pstm.execute();
pstm = con.prepareStatement(sql1);
//Define Id da empresa como chave estrangeira para contatos
int FkEmpresa = retornaProximoId();
for(int i=0; i<contatos.size(); i++) {
contatos.get(i).setFkEmpresa(FkEmpresa);
pstm.setInt(1, 0);
pstm.setInt(2, contatos.get(i).getFkEmpresa());
pstm.setString(3, contatos.get(i).getTipoContato());
pstm.setString(4, contatos.get(i).getDescricao());
pstm.setString(5, contatos.get(i).getExcluido());
pstm.execute();
}
con.commit();
return true;
}
catch (SQLException ex)
{
JOptionPane.showMessageDialog(null, "OCORREU UM ERRO DURANTE O PROCESSO: Class EmpresaDao public boolean add(Empresa obj)."+ex, "Erro", JOptionPane.ERROR_MESSAGE);
try
{
con.rollback();
}
catch (SQLException ex1)
{
Logger.getLogger(EmpresaDao.class.getName()).log(Level.SEVERE, null, ex1);
}
}
finally
{
ConnectionBank.closeConnection(con, pstm);
}
return false;
}
Qualquer modificação que vocês acharem necessária, eu estarei realizando, obrigado!