Mapeamento objeto/relacional

9 respostas
P

Eai pessoal tudo bem, eu desenvolvi algumas classes que faz o mapeamento objeto/relacional, se alguém testar para mim fico grato!!!

9 Respostas

danieldestro

Parece legal.

Mas onde vc configura ATRIBUTO x CAMPO DA TABELA e CLASSE x TABELA? Ou você pega isso pelo nome?

E por que você sempre informa o nome do pacote?

Acho que ter de estender uma outra classe é ruim.

Abraços

P

Simples:
nome da tabela = nome da classe
coluna = atributo
exemplo:
Tabela

CREATE TABLE pessoa(

codigo_pessoa integer not null,

                    nome varchar(30) ,

                    sexo integer,

                    PRIMARY KEY (codigo_pessoa)

)

Classe:

package exemplo;

 

public class Pessoa extends jcptbr.extend.Controle{

            private int pk_codigo_pessoa;
            private String nome;
            private Sexo sexo;

            public Pessoa(){
                        pk_codigo_pessoa = 0;
                        nome = "";
             }

             public void setPk_codigo_pessoa(int pk_codigo_pessoa){
                       this.pk_codigo_pessoa = pk_codigo_pessoa;
             }

              public int getPk_codigo_pessoa(){
                      return this.pk_codigo_pessoa;
              }

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

               public String getNome(){
                      return this.nome;
               }
}

Por que seria ruim estender de outra classe?

peczenyj

e se eu setar um nome com mais de 30 caracteres, só de sacanagem, o que acontece?

TLCC

É para exatamente isso que a profissão de programador existi, se foi requerido que o nome tenha no máximo 30 caracteres então devemos validar e permitir ao máximo 30 caracteres. Acredito que tenha sido apenas um exemplo :p…

danieldestro

Estender é ruim, seria melhor implementar uma interface.

E isto aqui ( private int pk_codigo_pessoa; ) ficou estranho… Com relação a este “pk”.

São críticas construtivas, ok.

P

Nesse caso ocorre uma exceção e é desfeito as alterações!!!

Estender é ruim, seria melhor implementar uma interface.

E isto aqui ( private int pk_codigo_pessoa; ) ficou estranho… Com relação a este “pk”.

São críticas construtivas, ok.

No caso de estender concordo com você!!
o “pk_” indica que esse atributo e primary key no banco de dados. Mas hoje modifiquei o código, não é mais necessário colocar “pk_” no inicio do nome do atributo.

Ironlynx
plic_ploc, além do que o destro falou, outra coisa: Pq sexo é uma entidade(no caso classe) no seu sistema?Acho difícil de pensar em algo diferente de M ou F(Mesmo um transexual tem que optar por um destes até que a lei defina o que ele é).Era para ser apenas um atributo do Usuario.Ah, há um tempo atrás eu peguei um cadastro daqueles de TM(TeleMarketing), deve servir para você fazer entidades mais completas:
import java.math.BigDecimal;
import java.util.Date;


public class Usuario {
	/*dados gerais*/
  private String nome; //primeiro nome
  private String sobrenome_completo;
  private long cpf;
  private int rg;
  private String orgao_emissor;
  private java.util.Date data_emissao;
  private java.util.Date data_nasc;
  private String naturalidade;
  private String uf;//relativo a emissão do documento 
  private String nacionalidade;
  private char sexo;
  private String dependentes;
  private String estado_civil;
  private String escolaridade;
  private String nome_do_pai;
  private String nome_da_mae;
   /*dados residenciais*/
  private String endereco;
  private int numero;
  private String complemento;
  private String bairro;
  private String cidade;
  private String estado; //relativo a residência 
  private int cep; 
  private int ddd;
  private int telefone_fixo;
  private int telefone_celular;
  private String tipo_moradia; //própria, alugada, em financiamento...
  private int tempo_de_residencia; //em anos
  
  /*dados relativos a ocupacao do usuario*/
  private String natureza_da_ocupacao; //Autonomo,Empregado,Aposentado,Profissional Liberal
  private String empresa_atual;
  private long cnpj;
  private String end_empresa;
  private String num_end_empresa; //numero do endereco da empresa
  private String comp_end_empresa; //complemento do endereco da empresa
  private String bairro_end_empresa; //bairro do endereco da empresa
  private String cid_end_empresa; //cidade de localização da empresa
  private String uf_end_empresa; //estado de localização
  private int cep_empresa;
  private int ddd_empresa;
  private int[] tels_empresa; //se houver mais de um
  private int[] ramal_tel_empresa; //se aplicável...
  private String profissao;
  private String cargo; //ocupação devida na empresa
  private Date data_admissao;
  private Date data_demissao; //se necessário
  private int[] tempo_empregado; //array de duas posições para (X)anos e (X)meses
  private BigDecimal salario;
  private BigDecimal outras_rendas;
  private String origem;//(relativo a outras rendas)
  /*Para quem trabalhou em uma anterior-para referências*/
  private String empresa_anterior;
  private int ddd_empresa_enterior;
  private int tel_emp_anterior;
  private int ramal_tel_emp_anterior; //se aplicável...
  private int[] tempo_permanecido; //tempo na empresa anterior em anos e meses 
  /*Dados relativos a correspondência*/
  private String local_correspondência;//dizer se residencial ou comercial
  private String[] emails; //emails para correspondência
  
  /*dados financeiros e bancarios*/
  private String cartoes;//cartoes de credito que possui(Visa,Mastercard...)
  private int data_vencimento; //data preferivel de vencimento de contas
  private String banco;
  private String agencia;
  private String cc_poupanca;//conta corrente ou poupanca
  private String cheque_especial; //se possuidor ou não
  
  /*Se houver outra conta bancaria*/
  private String segundo_banco;
  private String segunda_agencia;
  private String segunda_cc_poupanca;//conta corrente ou poupanca
  private String segundo_cheque_especial; //se possuidor ou não
  
  /*referencias que alguem possa dar sobre você(o usuario em questao)*/
  private String nome_completo;
  private String afinidade; //afinidade com o referido (amigo...)
  private int ddd_refencia; 
  private int[] tels_referencia;
  private int ramal;//se necessário
  
  /*dados estritamente pessoais*/
  private int altura; //em cm
  private int peso; //em Kg
  private String cor_dos_olhos;
  private String cor_dos_cabelos;
  private String etnia; 
  private char tipo_sanguineo;
  private char fator_rh;
  private String opcao_sexual;
  private String pressao;
  private String doencas_preexistentes;
  private String hist_doencas; //histórico de doencas familiares
  private String esportes_preferidos;
  private String cores_preferidas;
  private String alimentos_preferidos;
  private String atividades_preferidas; //não esportivas
  private String personalidade; //sua personalidade-extrovertido, introvertido 
  private String livros_preferidos; //gêneros e/ou nomes
  private String musicas_preferidas;  //gêneros e/ou nomes
  private String filmes_preferidos;  //gêneros e/ou nomes
  private String algo_que_gosta;
  private String algo_que_detesta;
  //getters,setters, equals, hashcode e cia do seu Objeto 
}
P

:lol: Ha, ha, ha, ha, ha…Fiz isso para mostrar um relacionamento 1 - 1, 1 - n estou terminando…

P

Consegui terminar o relacionamento 1-n!!!
So falta tratar o campo do tipo blob e fazer funcionar com todos os bancos!!!

pelo menos é o que eu to lembranda agora!!! hehehe!!!

Criado 11 de junho de 2006
Ultima resposta 23 de jun. de 2006
Respostas 9
Participantes 5