Lançado o MentaBean - Persistencia simples via configuração programática  XML
Índice dos Fóruns » Notícias
Autor Mensagem
saoj
Forum Spammer
[Avatar]

Membro desde: 09/03/2004 23:34:46
Mensagens: 2292
Localização: Los Angeles, EUA
Offline

========= Disponível para testes no jar beta e no SVN: http://www.mentaframework.org/beta/mentawai.jar

O Mentawai agora oferece uma solução simples para persistência de beans (POJOs) em banco de dados. Para fazer o mapeamento Tabela -> Objeto utilizamos configuração programática ao invés de XML ou Annotations.

A idéia aqui não é competir com Hibernate, JPA ou iBatis, mas sim oferecer uma solução simples, fácil e eficiente para fazer CRUDs de beans em seus projetos que utilizam o Mentawai.

Acreditamos que em muitos casos simples o MentaBean será uma mão-na-roda para vc persistir os seus Beans sem ter que depender do Hibernate/iBatis/JPA, etc e suas configurações.

Veja como é simples:







Pontos importantes:

Os updates gerados são inteligentes para fazer apenas o update nas colunas que foram alteradas, ou seja, se vc faz o load() de um bean com 20 colunas, altera uma coluna e faz um update(), apenas a coluna alterada sofrerá um update ao invés de todas.



Se vc deseja fazer um update num registro sem carregá-lo em memória antes, tudo que vc tem que fazer é construir um objeto, não fazer o load, setar os campo que vc deseja fazer o update, e chamar update:



Suporta a criação de outros tipos de coluna para o banco de dados, isto é, se vc precisar vc pode criar novos tipos de dados para a inserção no seu bd isso é muito fácil de se fazer:



Suporta AUTOINCREMENT do MySQL, ou seja, automaticamente recupera o ID gerado pelo MySQL e coloca no seu bean quando vc faz um INSERT. Suporta SEQUENCE do Oracle, ou seja, automatimcamente utiliza uma sequence do Oracle para gerar a chave primária do seu bean.



Se o nome da variável do seu bean for diferente do nome do seu campo na tabela do banco de dados, basta fazer assim:



Em muito breve:

Suporte a tranções. Até lá vc pode simplesmente pegar a connection da session e fazer a transação com JDBC.

Suporte a carregamento de listas de objetos, ou seja:



Participe dos meus novos blogs:
O Poder Primário - Você no controle da sua felicidade
Sedução Tecnológica - Tutoriais, dicas e histórias de um engenheiro

[Email] [WWW]
cv
Moderador
[Avatar]

Membro desde: 04/04/2003 00:32:12
Mensagens: 7817
Localização: São Paulo, SP
Offline

saoj wrote:Veja como é simples: ...


Simplorio, nao simples. E cade os testes?
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
saoj
Forum Spammer
[Avatar]

Membro desde: 09/03/2004 23:34:46
Mensagens: 2292
Localização: Los Angeles, EUA
Offline



Simplorio, nao simples.



Vc acha um saca-rolha simplório ou simples?

Tinha um eletronico vendendo aqui na televisão que sacava a rolha sem danificá-la. O furo ficava perfeito tb, bem no centro.

Estamos falando de CRUD simples de beans. Não suporta outer join nem redes neurais.



Cade os testes?



Eu fiz alguns testes aqui e funcionou ok. Mas está em beta ainda...


Participe dos meus novos blogs:
O Poder Primário - Você no controle da sua felicidade
Sedução Tecnológica - Tutoriais, dicas e histórias de um engenheiro

[Email] [WWW]
Alexandre Ferreira
Virtual Machine Man
[Avatar]

Membro desde: 20/09/2006 20:07:03
Mensagens: 517
Localização: Rio de Janeiro
Offline

PARABENS ³

Cada dia que passa vejo que nao escolhi o framework errado!!!

Um espetaculo Sergio...

Uma dica, se esforca nesse MentaBeans, faca com que ele se possivel se torne um framework a parte do Menta.. E tente encaixar logo o suporte a list, collection e etc...

Porque to vendo que vai da SAMBA!

PARABENS IRMAO!

Alexandre Ferreira
Blog: http://alexandreferreira.com.br
[Email] [WWW] [MSN]
juzepeleteiro
Virtual Machine Man

Membro desde: 19/07/2005 16:01:40
Mensagens: 583
Localização: Rio de Janeiro
Offline

saoj wrote:Eu fiz alguns testes aqui e funcionou ok. Mas está em beta ainda...


Quer dizer que o Mentawai também está em beta? Ele ainda não tem testes.

http://ofert.as - Cupons de desconto
[Email] [WWW] [MSN]
Alexandre Ferreira
Virtual Machine Man
[Avatar]

Membro desde: 20/09/2006 20:07:03
Mensagens: 517
Localização: Rio de Janeiro
Offline

Naoooooo

O Mentawai nao só uma versao estavel, como ja esta a mais de 2 anos no mercado e na versao 1.9!
Sendo usado por empresas profissionalmente, projetos Free Lancers, grande participacao dos usuarios / desenvolvedores no forum do Projeto e etc...


O Que o SAOJ falou que esta beta é o mentaBeans, um framework de persistence que acabou de ser lancado...

Mas se voce chegar no forum e ouvir dizer pega a versao "1.9 beta mais nova"
Quer dizer que tem tudo testado, homologado , documentado da versao 1.9(a atual ate a presente data) mas os bugs , melhorias , codereviews e etc... Adicionado apos o lancamento da 1.9.
Esperando somente a confirmacao das melhorias, adocao de novas features, documentacao, exemplos e etc...
Para sair uma nova versao...

Pois o SAOJ (Sergio) tem uma frase muito boa:
"Bug é bug! Tem que achar e matar rápido mesmo... "
Por isso é capaz de lancar a versao 1.9 hoje e daqui a 1 dia ter a versao 1.9 beta, que significa que tem a 1.9 + as correcoes de bugs e as ideias + novas que nao deu tempo ou nao apareceu antes do lancamento da versao!


[]'s

Alexandre Ferreira
Blog: http://alexandreferreira.com.br
[Email] [WWW] [MSN]
Fabio Kung
JavaEvangelist

Membro desde: 08/03/2004 08:24:47
Mensagens: 445
Localização: São Paulo
Offline

Sérgio, eu tb gosto de configuração programática para muitos casos, contanto que você NÃO precise configurar.

Minha dica é usar um pouquinho mais de convenções. Não se ofenda nem fique nervoso, é só uma dica. Se não gostar apenas ignore.

Só acho que não adianta nada pegar um xml de N linhas e transformar em código Java de N/2 linhas, ou pior ainda transformar o mesmo xml em N anotações.

Procurando por oportunidades de emprego?
OndeTrabalhar.com
OndeTrabalhar.com Java?


http://blog.caelum.com.br


Fabio Kung
[WWW] [MSN] [ICQ]
fmeyer
Moderador
[Avatar]
Membro desde: 22/02/2005 17:26:29
Mensagens: 1574
Localização: Sao Paulo
Offline

afsrj wrote:Naoooooo

O Mentawai nao só uma versao estavel, como ja esta a mais de 2 anos no mercado e na versao 1.9!
Sendo usado por empresas profissionalmente, projetos Free Lancers, grande participacao dos usuarios / desenvolvedores no forum do Projeto e etc...


Codigo sem teste unitario eh codigo inutil.

ps. isso vai ser engracado ...

Fernando Meyer http://blog.fmeyer.org
[Email] [WWW]
Paulo Silveira
Administrador
[Avatar]

Membro desde: 07/08/2002 18:38:50
Mensagens: 3685
Localização: São Paulo
Offline

Ola Sergio.

Para efeito de comparacao, segue aqui o mesmo codigo so que para o hibernate:

A classe usuario fica:



Bem menor nao? Ate porque nem sempre queremos os getters e setters, talvez metodos de negocios vao mexer com os atributos (boa pratica).

E o codigo na sua action fica:




Alem disso:
- nao precisa do codigo de init do contexto
- nao precisa do load beans
- o hibernate tambem faz update so dos campos que esta dirty se voce quiser. tem muita gente que desconhece mesmo
- o hibernate pode fazer update sem fazer o load. voce pode usar o merge para isso, ou usar HQL com update.
- o hibernate suporta criacao de tipos novos, igualzinho como voce fez.
- alem de auto increment e sequence, suporta propria tabela de sequence, hilo, genracao de id universal e possibilita voce inventar seu sistema de geracao de chaves
- Para mudar o nome da coluna, no hibernate basta @Column(columnName="bla")
- Da para fazer a configuracao TODA programaticamente, isso tem alguns anos.

E a MUITO tempo, ja tem:

- suporte a transacao
- suporte a listas de objetos


Se no hibernate parece ser mais simples, nao entendi o motivo do framework.

http://blog.caelum.com.br


Arquitetura e Design de Software: uma visão sobre a plataforma java
[Email] [WWW]
Fabio Kung
JavaEvangelist

Membro desde: 08/03/2004 08:24:47
Mensagens: 445
Localização: São Paulo
Offline

prevejo um tópico de 5 páginas...

Procurando por oportunidades de emprego?
OndeTrabalhar.com
OndeTrabalhar.com Java?


http://blog.caelum.com.br


Fabio Kung
[WWW] [MSN] [ICQ]
alots_ssa
JavaEvangelist

Membro desde: 19/07/2005 11:21:24
Mensagens: 450
Localização: Salvador
Offline

Paulo, aproveitando a onda, vc poderia explicar como configurar o hibernate para fazer este update inteligente nos objetos transientes? Procurei pelo site do hibernate e pelo google e não tive sucesso. Desculpem a fuga do tema do topico., mas esta é uma sabedoria que deve ser compartilhada.

Alberto

http://www.settech.com.br/blog
[WWW] [MSN]
urubatan
Moderador
[Avatar]

Membro desde: 21/09/2002 10:31:26
Mensagens: 2449
Localização: Porto Alegre/RS
Offline

Sérgio, ja que tu não vai desistir de fazer este MentaBeans (que eu achei completamente desnecessário, se seguir esta linha da demonstração)

por que em vez de fazer algo com configuraçãp programática, tu não tenta fazer algo que não precisa configurar?

pelo menos para as situações mais comuns, não deveria ser necessário configurar, isto sim seria interessante ...

o que esta feito até agora é uma versão mais pobre e mais dificil de utilizar que qualquer outro framework O/R que ja existe ...

em vez de fazer a mesma coisa, se tu conseguir fazer algo, que pelo menos nas situações consideradas "padrão" pelo framework, não seja necessário configurar, ai sim pode ser algo interessante ...


PS.: nada contra opções, mas qual a vantagem de fazer a mesma coisa que ja existe, só que mais dificil, menos flexivel e menos poderoso?

[]'s
Rodrigo Urubatan
http://www.urubatan.com.br - pt_BR
http://www.urubatan.info - en_US
Arquiteto J2EE
Melhor livro de RoR do brasil: http://livro.urubatan.com.br
[WWW]
Daniel Quirino Oliveira
Moderador
[Avatar]

Membro desde: 23/03/2003 23:57:34
Mensagens: 3280
Localização: Awawawawa (Araraquara) - SP
Offline

Paulo Silveira wrote:Ola Sergio.

Para efeito de comparacao, segue aqui o mesmo codigo so que para o hibernate:

A classe usuario fica:



Bem menor nao? Ate porque nem sempre queremos os getters e setters, talvez metodos de negocios vao mexer com os atributos (boa pratica).

E o codigo na sua action fica:




Alem disso:
- nao precisa do codigo de init do contexto
- nao precisa do load beans
- o hibernate tambem faz update so dos campos que esta dirty se voce quiser. tem muita gente que desconhece mesmo
- o hibernate pode fazer update sem fazer o load. voce pode usar o merge para isso, ou usar HQL com update.
- o hibernate suporta criacao de tipos novos, igualzinho como voce fez.
- alem de auto increment e sequence, suporta propria tabela de sequence, hilo, geração de id universal e possibilita você inventar seu sistema de geração de chaves
- Para mudar o nome da coluna, no hibernate basta @Column(columnName="bla")
- Dá para fazer a configuracao TODA programaticamente, isso tem alguns anos.

E a MUITO tempo, ja tem:

- suporte a transacao
- suporte a listas de objetos


Se no hibernate parece ser mais simples, nao entendi o motivo do framework.


Além de tudo isso que o Paulo citou, Hibernate permite que você crie desde soluções de "CRUD simples para Beans" até "persistência entre objetos com relacionamentos *malucos*", ou seja, é mais flexível e não vai obrigar que eu reescreva todo meu sistema novamente porque, de repente, ele deixou de ser um simples "cadastrinho" e passou a ser um sistema um pouco mais complexo.

Além disso, este projeto vai seguir a mesma política do MTW de não ter testes unitários para quase absolutamente nada? Como você pretende garantir backward compatibility conforme sua biblioteca evolui sem testes?

Daniel Quirino Oliveira
[Email] [WWW]
Paulo Silveira
Administrador
[Avatar]

Membro desde: 07/08/2002 18:38:50
Mensagens: 3685
Localização: São Paulo
Offline

Oi Alberto

alots_ssa wrote:Paulo, aproveitando a onda, vc poderia explicar como configurar o hibernate para fazer este update inteligente nos objetos transientes? Procurei pelo site do hibernate e pelo google e não tive sucesso. Desculpem a fuga do tema do topico., mas esta é uma sabedoria que deve ser compartilhada.


@org.hibernate.annotations.Entity(dynamicUpdate=true)

http://blog.caelum.com.br


Arquitetura e Design de Software: uma visão sobre a plataforma java
[Email] [WWW]
Rubem Azenha
Forum Spammer
[Avatar]

Membro desde: 28/06/2004 00:10:43
Mensagens: 1799
Localização: São Paulo, SP
Offline

Sergio, eu vou ter que concordar com o pessoal. Realmente acho que vc exagerou um pouco na dose.

O Hibernate eh um framework cuja qualidade eh comprovada. Ele eh completo, por isso tem uma ou outra complexidade, nada que um programador relativamente competente nao consiga dominar. E uma vez configurado, eh bem tranquilo de usar (principalmente se usar Hibernate Annotations).

Quanto ao uso ou nao dos testes unitarios, temos opnioes bem distintas quanto a isso (eu particularmente acho muito importante). Mas, you are the boss...



Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning
[WWW]
 
Índice dos Fóruns » Notícias
Ir para:   
Powered by JForum 2.1.8 © JForum Team