Preciso de ajuda com Swing integrado a SQL

19/11/2019

6

Estou estudando Java integrado a BD MySQL. Preciso de ajuda para preencher algumas tabelas utilizando a interface, sendo que:

Meu BD tem 3 tabelas: Funcionario, Tipo e FuncionarioTipo;
Já fiz um JFrame que associado ao DAO, permite que eu utilize as operações do CRUD:

DAOFuncionario:

   
    public void save(Funcionario f, Tipo t, FuncionarioTipo ft){
        if(f.getCodFuncionario() != null){
            update(f);
        } else {
            create(f);
        }
    }
    
    public boolean create(Funcionario f){
        String sql = "insert into funcionario (nome, cpf, rg, usuario, senha) values (?, ?, ?, ?, ?);";
        
        PreparedStatement stmt = null;
        
        try{
            stmt = con.prepareStatement(sql);
            
            stmt.setString(1, f.getNome());
            stmt.setString(2, f.getCpf());
            stmt.setString(3, f.getRg());
            stmt.setString(4, f.getUsuario());
            stmt.setString(5, f.getSenha());
            stmt.executeUpdate();
            JOptionPane.showMessageDialog(null, "Funcionário criado com sucesso.", null, JOptionPane.INFORMATION_MESSAGE);
            return true;
            
        } catch (SQLException ex){
            System.err.println(ex);
            JOptionPane.showMessageDialog(null, "Erro ao criar funcionário.", null, JOptionPane.ERROR_MESSAGE);
            return false;
            
        } finally {
            ConnectionFactory.closeConnection(con, stmt);
            
        }
    }


Tela Funcionario:

https://i.imgur.com/EZBdsoV.png

O problema é que eu preciso de ao mesmo tempo em que crio um Funcionario no BD, também preciso criar dados nas tabelas FuncionarioTipo e Tipo.
Existe alguma maneira de fazer isso?

DAOTipo:

public void save(Tipo t){
        if(t.getCodTipo() != null){
            update(t);
        } else {
            create(t);
        }
    }
    
    public boolean create(Tipo t){
        String sql = "insert into tipo (tipo) values (?);";
        
        PreparedStatement stmt = null;
        
        try{
            stmt = con.prepareStatement(sql);
            
            stmt.setString(1, t.getTipo());
            stmt.executeUpdate();
            JOptionPane.showMessageDialog(null, "Tipo criado com sucesso.", null, JOptionPane.INFORMATION_MESSAGE);
            return true;
            
        } catch (SQLException ex){
            System.err.println(ex);
            JOptionPane.showMessageDialog(null, "Erro ao criar tipo.", null, JOptionPane.ERROR_MESSAGE);
            return false;
            
        } finally {
            ConnectionFactory.closeConnection(con, stmt);
            
        }
    }


DAOFuncionarioTipo:

public void save(FuncionarioTipo ft){
        if(ft.getCodFuncionarioTipo() != null){
            update(ft);
        } else {
            create(ft);
        }
    }
    
    public boolean create(FuncionarioTipo ft){
        String sql = "insert into funcionario_tipo (codfuncionario, codtipo) values (?, ?);";
        
        PreparedStatement stmt = null;
        
        try{
            stmt = con.prepareStatement(sql);
            stmt.setInt(1, ft.getFuncionario().getCodFuncionario());
            stmt.setInt(2, ft.getTipo().getCodTipo());
            stmt.executeUpdate();
            return true;
            
        } catch (SQLException ex){
            System.err.println(ex);
            return false;
            
        } finally {
            ConnectionFactory.closeConnection(con, stmt);
        }
    }


Imagem do DEE:

https://i.imgur.com/NJDe0sN.png
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar