Rose :: db :: objeto

Extensível, Alto Desempenho Mapha-Relacional (ORM)
Baixe Agora

Rose :: db :: objeto Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • Perl Artistic License
  • Nome do editor:
  • John Siracusa
  • Site do editor:
  • http://search.cpan.org/~jsiracusa/

Rose :: db :: objeto Tag


Rose :: db :: objeto Descrição

Extensível, Alto Performance Object-Mapper-Relational (ORM) Rose :: DB :: Object é um módulo Perl para objetos que encapsulam uma única linha em uma tabela de banco de dados. Rose :: DB :: objetos derivados do objeto são às vezes chamado simplesmente de "Rose :: DB :: Object objetos" nesta documentação para fins de concisão, mas pode ter certeza de que a derivação é a única maneira razoável usar esse class.Rose: : herda DB :: objeto, e segue as convenções de, Rose :: Object. Consulte a documentação Rose :: Object para mais information.For uma visão geral informal desta distribuição módulo, consultar os objetos Rose :: DB :: Object :: Tutorial.RestrictionsRose :: DB :: Object pode representar linhas em quase qualquer tabela de banco de dados, sujeito às seguintes restrições. * O servidor de banco de dados deve ser apoiada por Rose :: DB. * A tabela de banco de dados deve ter uma chave primária. * A chave primária não deve permitir valores nulos em qualquer de suas columns.Although a lista acima contém as regras única duras e rápidas, pode haver outras realidades que você precisa para trabalhar around.The exemplo mais comum é a existência de um nome da coluna na tabela de banco de dados que entra em conflito com o nome de um método na Rose :: DB :: API objeto. Existem duas soluções possíveis: quer explicitamente alias de coluna, ou definir uma função de mapeamento. Veja os métodos alias_column e column_name_to_method_name_mapper no Rose :: DB :: Object :: documentação Metadados para mais details.There também são diferentes graus de suporte para tipos de dados em cada servidor de banco de dados suportado por Rose :: DB. Se você tem uma tabela que usa um tipo de dados não é suportado por uma existente Rose :: DB :: Object :: Metadados :: derivados de Coluna classe, você terá que escrever sua própria classe de coluna e, em seguida, mapeá-lo para um nome de tipo usando Rose :: DB :: Object :: método column_type_class de Metadados, yada yada. (Ou, é claro, você pode mapear o novo tipo de uma classe de coluna existente.) O quadro inteiro é extensível. Esta distribuição módulo contém implementações straight-forward dos tipos mais comuns de coluna, mas há certamente mais que pode ser feito. As inscrições estão welcome.SYNOPSIS ## Para uma visão geral informal de Rose :: DB :: Object, entre ## consulte a documentação Rose :: DB :: Object :: Tutorial. A ## documentação de referência segue. ## Em primeiro lugar, configurar suas fontes de dados Rose :: DB, caso contrário você ## não será capaz de se conectar ao banco de dados em tudo. Veja ## a documentação Rose :: DB para mais informações. Para ## um início rápido, consulte a documentação Rose :: DB :: Tutorial. ## ## Criar classes - duas abordagens possíveis: ## # # 1. A configuração automática # pacote Categoria; usar qw base (Rose :: DB :: Object); __PACKAGE __-> meta-> setup (table => 'categorias', auto => 1,); ... preço do pacote; usar qw base (Rose :: DB :: Object); __PACKAGE __-> meta-> setup (table => 'preços', auto => 1,); ... Pacote do produto; usar qw base (Rose :: DB :: Object); __PACKAGE __-> meta-> setup (table => 'produtos', auto => 1,); # # 2. Configuração manual # pacote Categoria; usar qw base (Rose :: DB :: Object); __PACKAGE __-> meta-> setup (tabela => 'categorias', colunas => , unique_key => 'nome',); ... preço do pacote; usar qw base (Rose :: DB :: Object); __PACKAGE __-> meta-> setup (tabela => 'preços', colunas => , unique_key => ,); ... Pacote do produto; usar qw base (Rose :: DB :: Object); __PACKAGE __-> meta-> setup (tabela => 'produtos', colunas => , padrão => 'inativa',}, start_date => {type => 'datetime'}, end_date => {type => 'datetime'}, date_created => {type => 'timestamp', default => 'agora '}, LAST_MODIFIED => {type => 'timestamp', default => 'empresa'},], unique_key => 'nome', FOREIGN_KEYS => , relacionamentos => ,); ... # # Exemplo de uso # $ product = Produto-> new (id => 123, name => 'GameCube', status => 'ativa', start_date => '11 / 5 / 2001' , end_date => ' 2007/12/01' , category_id => 5); $ Produto-> Salvar; ... $ product = Produto-> new (id => 123); $ Produto-> carga; # Carga objeto estranho através de "one to one" relacionamento imprimir $ produto-> categoria-> nome; $ Produto-> end_date-> add (dias => 45); $ Produto-> Salvar; ... $ product = Produto-> new (id => 456); $ Produto-> carga; # Objetos estranhos carga através "de um para muitos" print relacionamento juntar '', $ produto-> preços; ...


Rose :: db :: objeto Software Relacionado