public void delete(Funcionario funcionario) {
   Connection conexao = new Conexao().getConexao();
   try {
     PreparedStatement preparedStatement =
         conexao.prepareStatement("UPDATE funcionarios SET status=false WHERE id = ?;");
     preparedStatement.setInt(1, funcionario.getId());
     preparedStatement.executeUpdate();
     conexao.close();
   } catch (SQLException ex) {
     Logger.getLogger(FuncionarioDAO.class.getName()).log(Level.SEVERE, null, ex);
   }
 }
 public void insert(Funcionario funcionario) {
   Connection conexao = new Conexao().getConexao();
   try {
     PreparedStatement preparedStatement =
         conexao.prepareStatement(
             "INSERT INTO funcionarios(nome, sobrenome, telefone, endereco_id, salario, email, cpf, nascimento, senha, gerente) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?);");
     preparedStatement.setString(1, funcionario.getNome());
     preparedStatement.setString(2, funcionario.getSobrenome());
     preparedStatement.setString(3, funcionario.getTelefone());
     preparedStatement.setInt(4, funcionario.getEndereco().getId());
     preparedStatement.setDouble(5, funcionario.getSalario());
     preparedStatement.setString(6, funcionario.getEmail());
     preparedStatement.setString(7, funcionario.getCpf());
     preparedStatement.setDate(8, funcionario.getNascimento());
     preparedStatement.setString(9, funcionario.getSenha());
     preparedStatement.setBoolean(10, funcionario.isGerente());
     preparedStatement.executeUpdate();
     conexao.close();
   } catch (SQLException ex) {
     Logger.getLogger(FuncionarioDAO.class.getName()).log(Level.SEVERE, null, ex);
   }
 }
  public static void main(String[] args) {
    Funcionario funcionario = new Funcionario();

    PessoaJuridica func = new PessoaJuridica();

    String u, v, t, z;
    int x;
    z =
        JOptionPane.showInputDialog(
            "Digite 1 se o contribuinte for uma pessoa física \n Digite 2 se for pessoa jurídica");
    x = Integer.parseInt(z);
    if (z.length() == 1) {
      switch (x) {
        case 1:
          u = JOptionPane.showInputDialog("Informe o nome do contribuinte");
          v = JOptionPane.showInputDialog("Informe o rg do contribuinte");
          t =
              JOptionPane.showInputDialog(
                  "Digite o número cartão de identificação do contribuinte");

          funcionario.setNome(u);
          funcionario.setRg(v);
          funcionario.setCartao(t);

          System.out.println("Nome :" + funcionario.getNome());
          System.out.println("Rg :" + funcionario.getRg());
          System.out.println("Cartão :" + funcionario.getCartao());

          break;
        case 2:
          u = JOptionPane.showInputDialog("Informe o nome do contribuinte");
          v = JOptionPane.showInputDialog("Informe o cnpj do contribuinte");
          t =
              JOptionPane.showInputDialog(
                  "Digite o número do cartão de identificação do contribuinte");

          funcionario.setNome(u);
          func.setCnpj(v);
          funcionario.setCartao(t);

          System.out.println("Nome: " + funcionario.getNome());
          System.out.println("Cnpj: " + func.getCnpj());
          System.out.println("Cartão identificação: " + funcionario.getCartao());

        default:
          break;
      }
    }
  }
 public void update(Funcionario funcionario) {
   Connection conexao = new Conexao().getConexao();
   try {
     PreparedStatement preparedStatement =
         conexao.prepareStatement(
             "UPDATE funcionarios SET nome=?, sobrenome=?, telefone=?, endereco_id=?, salario=?, email=?, cpf=?, nascimento=?, edited=now(), senha=?, gerente=? WHERE id = ?;");
     preparedStatement.setString(1, funcionario.getNome());
     preparedStatement.setString(2, funcionario.getSobrenome());
     preparedStatement.setString(3, funcionario.getTelefone());
     preparedStatement.setInt(4, funcionario.getEndereco().getId());
     preparedStatement.setDouble(5, funcionario.getSalario());
     preparedStatement.setString(6, funcionario.getEmail());
     preparedStatement.setString(7, funcionario.getCpf());
     preparedStatement.setDate(8, funcionario.getNascimento());
     preparedStatement.setString(9, funcionario.getSenha());
     preparedStatement.setBoolean(10, funcionario.isGerente());
     preparedStatement.setInt(11, funcionario.getId());
     preparedStatement.executeUpdate();
     conexao.close();
   } catch (SQLException ex) {
     Logger.getLogger(FuncionarioDAO.class.getName()).log(Level.SEVERE, null, ex);
   }
 }