Mapeamento objeto/relacional

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

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

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?

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

É 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…

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.

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

[quote]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. [/quote]

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.

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:

[code]
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
}[/code]

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

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!!!