Criar cadastro de funcionario :/

3 respostas
java
E

Sou novo nesse lance de Java, e é a minha primeira duvida aqui…então… ignorem os erros… fiz o código bem dizer sozinho… só um amigo que validou os botões… enfim… como faço para criar um segundo cadastro (o primeiro criei de clientes e esse segundo será de funcionarios) no mesmo projeto?.. só que o de clientes fiz com cadastro apenas de Nome e CPF, já o de funcionários quero fazer NOME,CPF,TELFONE, IDADE… No caso o cadastro vai pra o banco de dados em MySql line… Criei a classe conexão e a classe principal… então todo o código de clientes está feito…
dentro do package dao está
PessoaDAO
UsuarioDAO

package dao;

import java.sql.*;

import modelo.Pessoa;
import farmaciatargaryen.Conexao;

public class PessoaDAO {

private Connection connection;

Long id;

String nome;

int cpf;
public PessoaDAO() {

this.connection = Conexao.GeraConexao();

}
public void adiciona(Pessoa pessoa) {

String sql = INSERT INTO pessoa(nome,cpf) VALUES(?,?);

try {

PreparedStatement stmt = connection.prepareStatement(sql);

stmt.setString(1, pessoa.getNome());

stmt.setString(2, pessoa.getCpf());

stmt.execute();

stmt.close();

} catch (SQLException u) {

throw new RuntimeException(u);

}

}

}

UsuarioDAO

package dao;

import java.sql.*;

import modelo.Pessoa;
import farmaciatargaryen.Conexao;

public class UsuarioDAO {

private Connection connection;

Long id;

String nome;

int cpf;
public UsuarioDAO() {

this.connection = Conexao.GeraConexao();

}
public void adiciona(Pessoa pessoa) {

String sql = INSERT INTO pessoa(nome,cpf) VALUES(?,?);

try {

PreparedStatement stmt = connection.prepareStatement(sql);

stmt.setString(1, pessoa.getNome());

stmt.setString(2, pessoa.getCpf());

stmt.execute();

stmt.close();

} catch (SQLException u) {

throw new RuntimeException(u);

}

}

}

Então vem o packge gui que é a interface gráfica

e vem a classe Pessoa que fica no package modelo
package modelo;

public class Pessoa {
	Long id;
	String nome;
	String cpf;



	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getCpf() {
		return cpf;
	}

	public void setCpf(String cpf) {
		this.cpf = cpf;
	}
}

3 Respostas

F

Bom dia Enzzo,
vc vai criar uma classe Funcionario dentro do package modelo. Note que o funcionario tbm tem id, nome e cpf assim como uma Pessoa, então vc pode herdar isso de Pessoa. E na sua classe UsuarioDao não tem necessidade de declarar aqueles atributos id,nome,cpf, somente a Connection.

public class Funcionario extends Pessoa{

          //os atributos id, nome e cpf vc já tem por herança
          private String telefone;
          private int idade; 

         //... getters e setters
}

Ai no package dao vc vai criar uma classe FuncionarioDao igual vc fez para o UsuarioDao. Só vai trabalhar nos métodos com a classe Funcionario.

D

Olá

Eu faria um pouco diferente

Criaria a classe Usuario para ser usado no UsuarioDao e no banco criaria a tabela usuario

public classe Usuario extends Pessoa {
}

e no UsuarioDAO

public void adiciona(Usuario usuario) {
    PessoaDAO pessoaDAO = new PessoaDAO();
    pessoaDAO.adiciona(usuario);
    // considerando o cpf como chave primária
    String sql = "INSERT INTO usuario(cpf) VALUES(?)";

para o funcionario seria parecido

public class Funcionario extends Usuario {
}

e no DAO

public void adiciona(Funcionario func) {
    UsuarioDAO usuarioDAO = new UsuarioDAO();
    usuarioDAO.adiciona(func);
    // considerando o cpf como chave primária
    String sql = "INSERT INTO funcionario(cpf, telefone, idade) VALUES(?,?,?)";
F

E como o Diego citou acima vc pode criar a tabela usuario e funcionario. Mas lendo novamente sua dúvida o cliente vc deixou na classe Pessoa? Se sim crie uma nova classe Cliente que vai herdar de pessoa. Outra coisa vc criou 2 daos UsuarioDao e PessoaDao, as 2 inserindo na mesma tabela no Banco. Tem que melhorar isso, além da dica do Diego de criar a tabela usuario e funcionario crie também a tabela cliente. Fica mai organizado e mais fácil de ter as informações quando necessário.

Criado 11 de maio de 2016
Ultima resposta 11 de mai. de 2016
Respostas 3
Participantes 3