Dúvida em Java e tabelas no mysql [RESOLVIDO]

Boa noite… sou iniciante no mundo do MYSQL e criei um pequeno sistema onde eu faço o cadastro de empresas e dentro dessas empresas eu faço o cadastro de funcionários. Porém eu não queria que a tabela de funcionários fosse a mesma para todas empresas… não quero entrar na tela de uma EMPRESA X e ter os funcionários da EMPRESA Y… Alguém teria um dica de como posso desenvolver isso… no caso criar uma tabela de funcionários para cada empresa sem ter que fazer manualmente no mysql,pois ai não faria muito sentido eu ficar criando “a mão” as tabelas de funcionários… enfim se alguém tiver um dica do que fazer agradeceria muito.

Se você vincular a empresa como FK de funcionário, você consegue filtrar os funcionários de cada empresa.

Criei a FK…

;

Meu codigo de inserção de dados no banco

[code]

public void create(Dados d){
    Connection con = ConectionFactory.getConnection();
    PreparedStatement stmt = null;
    
    try {
        stmt = (PreparedStatement) con.prepareStatement("INSERT INTO tabela_dados (cnpj,nome,rua,numero,complemento,bairro,cidade,estado,cep,celular,fixo,email,facebook,ramo,idempresa) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
        stmt.setString(1,d.getCNPJ());
        stmt.setString(2, d.getNOME());
        stmt.setString(3, d.getRUA());
        stmt.setLong(4, d.getNUMERO());
        stmt.setString(5, d.getCOMPLEMENTO());
        stmt.setString(6, d.getBAIRRO());
        stmt.setString(7, d.getCIDADE());
        stmt.setString(8, d.getESTADO());
        stmt.setString(9, d.getCEP());
        stmt.setString(10, d.getCELULAR());
        stmt.setString(11, d.getTELEFONEFIXO());
        stmt.setString(12, d.getEMAIL());
        stmt.setString(13, d.getFACEBOOK());
        stmt.setString(14, d.getRAMO());
        stmt.setInt(15,d.getCodigoEmpresa());
        
        stmt.executeUpdate();
        
        JOptionPane.showMessageDialog(null,  " Salvo com sucesso");
    } catch (SQLException ex) {
         JOptionPane.showMessageDialog(null,  " Erro ao salvar " + ex);
    }finally{
        ConectionFactory.closeConnection(con, stmt);
    }
[/code] 

O erro que está me retornando

Pelo que parece o ID de empresa que você está fornecendo no momento do cadastro de um funcionário é inválido, ou seja, ID de empresa inexistente na tabela de empresa.

Arrumei, agora está dando certo porém agora me veio outro problema, dizendo que minha syntaxe ta errada no meu método que verifica o usuário… mas até antes não tinha nada de derrado.

 
public boolean verificaSenha(String busca,Empresa e){
        Connection con = ConectionFactory.getConnection();
        PreparedStatement stmt = null;
        ResultSet rs = null;
   
        try {
            stmt = con.prepareStatement("SELECT * FROM tabela_empresa WHERE senha LIKE ? ");
            stmt.setString(1, "%" + busca + "%");
            rs = stmt.executeQuery();
            if(rs.next()){
                return true;
            }else{
                return false;
            }
                } catch (SQLException ex) {
               Logger.getLogger(EmpresaDao.class.getName()).log(Level.SEVERE, null, ex);
               return false;
           }
                }

java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= '%002003a%'' at line 1

Não faltam os apóstrofos que abrem e fecham o texto de busca aqui?

stmt.setString(1, "'%" + busca + "%'");

Deu tudo certo valeu Jonathan