Castor é um framework código aberto para o Mapeamento Objeto Relacional escrito na linguagem Java. Ele é um atalho entre objetos Java, documentos XML e tabelas relacionais. O Castor oferece uma conexão Java-XML, além da persistência Java-SQL e muito mais.

Castor
Desenvolvedor ExoLab Group, Intalio Inc
Versão estável 1.1.1 (22 de abril de 2007)
Sistema operacional Multiplataforma
Gênero(s) Mapeamento objeto-relacional
Licença Licença Apache 2.0
Página oficial O Projeto Castor

O Programa editar

O Castor é formado por dois grandes programas, o Castor JDO responsável pela persistência dos objetos Java para os SGDB e o Castor XML que tem a função de converter objetos java para XML.

Castor JDO editar

Castor JDO é um Mapeador Objeto-Relacional e um Framework Data-Binding, escrito totalmente em Java puro. Castor pode mapear os dados de um banco de dados relacional dentro dos objetos de dados Java, com um esquema de mapeamento definido pelo usuário. Sobre outro ponto de vista, ele provê objetos de dados Java na camada de persistência.

Ele é um programa gratuito para o relacionamento direto com banco de dados e substitui inteiramente a sobrecarga de atualização do banco de dados. As declarações SQL apropriada são automaticamente geradas para carregar, atualizar, criar e deletar. O programador poderá trabalhar inteiramente na linguagem Java sem ter que lembrar de todos os detalhes por trás do banco de dados, seja na criação das tabelas ou no esquema de mapeamento. A separação da camada de persistência com a lógica de programação faz com que o design orientado a objeto seja muito mais limpo, o que é importante para grandes projetos.

Ligações externas editar

JDO é transacional. Objetos de dados carregados no Castor são intencionalmente travado e isolados de outras transações. Castor suporta vários modos de travamento, incluindo "distribuído", "exclusivo", "banco de dado travado" e "somente leitura".

Castor suporta diferentes cardinalidades de relacionamento, incluindo uma-para-uma, uma-para-muitos e muitos-para-muitos. Ele distingue entre relacionamento relacionado (i.e associado) e o dependente (i.e agregado) durante o tempo de vida do objeto, criando e deletando automaticamente objetos dependente no tempo apropriado no ciclo de vida do objeto independente.

O Castor oferece suporte para os seguintes SGDB

Castor XML editar

Castor XML é um framework databinding. Assim como as duas principais APIs XML, o DOM (Document Object Model) e o SAX (Simple API for XML) em que o objetivo é a estrutura do documento XML, o Castor permite o tratamento dos dados definidos em um documento XML através de um modelo objeto que representa os dado.

Castor XML pode serializar qualquer objeto java do tipo "bean" de ou para XML. Na maioria dos casos os framework de serialização, usa o ClassDescriptors e o FieldDescriptors para detalhar como um Objeto deve ser serializado ou deseralizado de um XML.

Para aqueles que não estão acostumado com o termo "serialização" e "deseralização", isso é um ato simples de converter uma stream (sequência de bytes) de um dado de ou para um objeto. O ato de "serialização" consiste em converter um objeto para uma stream e "deseralização o contrario, ou seja, de uma stream para um objeto.

Características editar

  • Castor JDO: Persistência de objetos Java para os SGBD
    • Castor JDO não é igual ou compatível com o JDO da Sun. O Castor tem uma abordagem diferente para manusear objetos de dados para o mapeamento dos SGDBs.
  • Castor XML: Conversão do modelo de objetos do Java de/para XML
    • Gera o código fonte para um esquema XML
    • Por padrão, mapeia os arquivos para um modelo objeto já existente

Características Gerais

  • Arquivo de mapeamento baseado em XML para especificar uma ligação a um modelo de objeto já existente.
  • Suporte para esquemas de ligação Java-XML
  • Cache em memória e redução da escrita de COMMIT das operações dos JDBC
  • Dois caminhos para as transações dos commit, redução dos objetos e detecção dos deadlock
  • Mapeamento de busca QQL para as buscas SQL
  • Um conjunto de gerenciador persistente EJB para o OpenEJB
  • Habilidade para criar uma base de mapeamento para uma classe Java já existente
  • Habilidade para criar um esquema XML para um documento de entrada XML

Ligações externas editar