sexta-feira, 21 de novembro de 2008

Java Record – um jeito diferente de ORM

1


O Java Record surgiu com uma idéia de evitar as dificuldades de se mapear classe por classe usando Hibernate, seja com os .hbm.xml ou com Annotations, lógico que a segunda alternativa, é a mais rápida, porem eu como um verdadeiro programador a moda antiga, gosta de configurações, prefiro escrever 900 xml do que usar annotations. Lógico que isso não quer dizer não use annotations, eu as usei, e confesso que achei muito eficiente. Mas não era isso que eu queria, dava muito trabalho, eu como costumo seguir as regras da normalização, acabo gerando diversos models para simples cadastros, e era trabalhoso de mais configurar todos os XML.

Eis que me aventuro no mundo do Ruby on Rails, já havia tentado a muito tempo atrás, mas não havia gostado muito, hoje com mais conhecimento, consegui ver vantagens na linguagem, e lógico comecei do jeito certo, pelo Ruby, na outra vez me taquei direto no Rails, que não aconselho a ninguém não foi uma experiência muito agradável, era basicamente CTRL C + CTRL V. E pesquisando mais a fundo sobre o funcionamento do Active Record (O ORM do Rails), percebi que ele era simples pois, perguntava para o banco quais seus atributos, na hora me veio na cabeça ResultSetMetaData, que faz a mesma coisa, retorna as colunas de uma tabela, e pensei que poderia usar isso para facilitar o desenvolvimento dos meus models nas brincadeiras que fazia.

Então comecei a escrever o JavaRecord, meu objetivo era agilizar o trabalho, porém eu precisaria de um arquivo de configuração, para pelo menos me indicar aonde conectar, eis que surgiu o config.yml. Mas por que YAML? YAML é um formato de texto simples e fácil de ser lido, é rápido e facilmente processado pela aplicação, e é muito fácil de ser lido, sem todas aquelas frescuras do XML. Assim comentei com alguns colegas meu da faculdade, e acharam a idéia interessante, resolvi ver o que o pessoal o Java.net achava da minha idéia, e ela foi aprovada no Java.net, então começou um projeto Open Source para Java, atualmente na versão 0.1.1 o projeto é bem fácil de ser utilizado em bancos MySQL, porém um teste com o Oracle me decepcionou, como eu pude esquecer das seqüências?  Agora estou em um dilema como vou adicionar as seqüências do Oracle? Não quero adicionar mais configurações, e estou até pensando em criar um esquema de dialetos. O próximo passo é criar automaticamente os vínculos com chaves primarias, evitando assim mais uma configuração.

Para quem quiser ver um exemplo funcional clique aqui e veja um PDF mostrando o funcionamento do JavaRecord. E para fazer o download do JavaRecord com dependências acesse o sourceforge.net

1 comentários:

Luiz Eduardo disse...

testando ja :D
mas adorei a idéia

 
Design by ThemeShift | Bloggerized by Lasantha - Free Blogger Templates | Best Web Hosting