Introdução ao iBatis (MyBatis), uma alternativa ao JDBC e Hibernate
Escrevi alguns artigos/tutoriais sobre iBatis/MyBatis. Este é o primeiro e tem objetivo introduzir o que é o framework e porquê deveria utilizá-lo…
Para aqueles que ainda não conhecem, o iBatis/MyBatis é um framework de persistência – uma alternativa ao JDBC e ao Hibernate. Tem suporte para Java e .NET. Aqui no blog vou focar no Java!
Estou trabalhando há 2 anos com esse framework e tenho gostado muito. É bem leve e muito potente!
Mas por que iBatis/MyBatis? Tem dois nomes? Até Junho de 2010, o iBatis estava sob a licença Apache, e após esse período decidiram migrar para o Google Code, e também mudaram o nome para MyBatis. Exceto pelo schema dos arquivos de configuração, o framework não mudou.
Bem, como este é apenas um post de introdução, peguei algumas fontes na rede e vou citá-las aqui no blog (traduzido e adaptado). Os próximos posts (tutoriais) que vou publicar são projetos que implementei para exemplificar.
O que é MyBatis/iBatis?
O MyBatis é um framework de persistência que facilita o uso entre um banco de dados relacional e aplicações orientadas a objetos. O MyBatis mapeia objetos com stored procedures ou queries SQL utilizando um XML como arquivo de configuração. A maior vantagem do MyBatis sobre outras ferramentas é a simplicidade.
Para usar o MyBatis, você depende apenas dos seus própios objetos, próprio código SQL e XML. A curva de aprendizagem é muito pequena. Você tem poder total sobre as suas queries SQL e stored procedures.
(www.mybatis.org)
O que é iBatis ?
- Um framework JDBC
- O desenvolvedor escreve o código SQL, e o iBATIS executa usando JDBC.
- Não precisa de try/catch/finally/try/catch.
- Mapeador SQL
- Automaticamente mapeia as propriedades dos objetos com parâmetros da query SQL.
- Automaticamente mapeia os resultados da query com os objetos.
- Tem suporte ao problema das queries com relacionamento N+1.
- Gerente de transações
- iBATIS fornece o gerenciamento de transactions para operações no banco de dados se não houver outro gerenciador disponível .
- IBATIS usará outro gerenciador de transactions se disponível (Spring, EJB CMT, etc.).
- Ótima integração com Spring, mas também pode ser usado sem o Spring (o Spring foi um dos primeiros frameworks a dar suporte ao iBATIS).
O que o iBATIS não é ?
- Um ORM
- Não gera SQL
- Não tem uma linguagem propretária
- Não sabe sobre a identidade do objeto
- Não faz persistência de objetos automaticamente
- Não faz cache de objetos
Quem está usandoiBatis/MyBatis?
Você pode conferir a lista neste link: http://www.apachebookstore.com/confluence/oss/pages/viewpage.action?pageId=25
O maior caso é o MySpace, com milhões de usuário. Muito legal!
Este artigo foi apenas uma introdução. Nos próximos vamos começar a colocar a mão na massa!
Até a próxima!
Comments (10)
Links to this Post
- Apresentando IBatis/MyBatis | JornalJava | 15/02/2011
- Começando com iBatis (MyBatis): Annotations | Loiane Groner | 21/02/2011











pergunta:
pq MyBatis ao invés de um ORM?
Olá Larazo,
O myBatis é uma ferramenta muito poderosa, é bom para trabalhar com queries e mapeamentos complexos, procedures e functions, coisas não muito triviais de fazer se fosse usar hibernate (por exemplo), além de ser bem leve.
No trabalho nós usamos pq trabalhamos com muitas procedures e mapeamentos muito complexos, além de muitas sessões, transações ao mesmo tempo. Tem funcionado muito bem até hoje e com ótima performance.
[]‘s
Excelente post Loiane. Vou esperar pelos exemplos práticos. Como já havia dito antes, gostei muito da idéia da ferramenta. E eu acho que myBatis não deixa de ser uma ferramenta ORM. Minha opnião.
Abraços.
Olá Loiane,
Excelente post. Também aguardo pelos próximos.
Sempre utilizei hibernate, e agora estou em um projeto de migração de um sistema construído com iBatis 1 (é bem antigo). Temos muitas procedures e mapeamentos bem complexos, e eu acredito que o hibernate não será a melhor solução para este cenário.
É bom saber que você utiliza o myBatis, e que ele tem agradado em termos de performance, pois tive um certo receio ao saber que o projeto não pertencia mais à Apache.
Abraços
estou usando ibatis em todos os meus projetos particulares… estou muito mais feliz que com hibernate ou jpa… minha vida ficou muito mais fácil! e tb tenho usado com spring para controle de transacao, aop e DI… fica muito bom! coloco o jersey no topo e programo todo o resto com extjs… fica muito rápido e bom demais de programar! parabéns pelo artigo! Ari Dias
Olá Loiane.
fiquei curioso pra ver algum exemplo de utilização do iBatis. Se vc puder mostrar um pouco do código, a gente agradece! =)
também seria legal mostrar como vc esta usando nos projetos (ex.: A classe de negócio chama o iBatis, etc…)
Valeu!
Olá,
Comecei a postar exemplos práticos. No total serão cerca de 10 posts práticos sobre o MyBatis. O primeiro já publiquei: http://www.loiane.com/2011/02/comecando-com-ibatis-mybatis-configuracao-em-xml/
[]‘s
Opa Loiane… ficarei ancioso pelo restante dos artigos.
Usei o iBatis em um Projeto um tempo atrás e adorei a solução. Atualmente estou em um Projeto com Hibernate, mas devo dizer que o mesmo é o ideal para iBatis, pois a maioria das regras de negócios e utilitários estão no banco de dados…
Quem sabe não mexo na Persistência dele, apesar de ser arriscado, pois estou só dando manutenção de algo já bastante antigo, e que bem ou mal, está funcionando…
Abs []