Pessoal,
Gostaria de saber se alguem usa iBatis. Achei muito legal a ideia do projeto porem gostaria de saber a “aderencia” q ele está tendo… Se a comunidade está usando e trabalhando com esse framework…
Gostaria de saber tb com realacao a produtividade comparando-o com hibernate.
Abraco a todos
iBatis
11 Respostas
Eu uso Ibatis em um projeto aqui na empresa juntamente com JSF e gostei bastante, principalmente por precisar alterar código sql quase todo dia.
Legal, e vc. poderia explicar como faz a leitura do arquivo sqlMap-config.xml e se puder colocar um exemplo ficaria grato.
Obrigado…
Nós usamos o iBatis já faz uns 6 meses e até agora não tivemos problemas com ele.
Os problemas mais frequentes que tivemos foi com os erros nos mapeamentos, geralmente quando nós erramos os nomes dos parâmetros com maiúsculas e minúsculas.
Recentemente descobrimos um plugin para o Eclipse que faz o mapeamento automático e é bem fácil de usar. Chama-se Abator.
Minha preocupação em relação ao iBatis é com a frequência de atualização que eu acho um pouco lenta.
Uma coisa que me aliviou é que o Spring Framework está fornecendo compatibilidade com o iBatis também.
Não posso falar nada do Hibernate, pois não o usei.
A grande vantagem que acho do iBatis é permitir utilizar SQL ad hoc. Isso permite utilizar SQLs otimizados para o banco que nós utilizamos.
No nosso caso não existe a preocupação de portabilidade entre bancos de dados, mas se isso for necessário basta mudar o SQL que fica em um arquivo XML separado da aplicação e está tudo resolvido.
Recomendo você consultar bastante a documentação, apesar de desatualizada como falado anteriormente.
==>Legal, e vc. poderia explicar como faz a leitura do arquivo sqlMap-config.xml e se puder colocar um exemplo ficaria grato.
==>Obrigado…
Na documentação, iBatis-dao-2.pdf à página 4, existe um exemplo de como ler o arquivo sqlmap-config.xml.
Ok. Daniel ,
mais estava me referindo a este exemplo. Acho que seria mais fácil para ler o arquivo de configuração.:
"
public MyAppSqlConfig {
private static final SqlMapClient sqlMap;
static {
try {
String resource = “com/ibatis/example/sqlMap-config.xml”;
Reader reader = Resources.getResourceAsReader (resource);
sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
} catch (Exception e) {
// If you get an error at this point, it doesn’t matter what it was. It is going to be
// unrecoverable and we will want the app to blow up hard so we are aware of the
// problem. You should always log such errors and re-throw them in such a way that
// you can be made immediately aware of the problem.
e.printStackTrace();
throw new RuntimeException (“Error initializing MyAppSqlConfig class. Cause: ” + e);
}
}
public static getSqlMapInstance () {
return sqlMap;
}
}
Reading
"
Apesar que o Spring trata de maneira muito mais elegante e padronizada.
Eu conclui recentemente um projeto na minha empresa que usa hibernate.
Tive alguns problemas com o hibernate principalmente com relação a mapeamentos n:n onde o hibernate fornece suporte, porém com algumas restricoes, forçando o usuario a criar “Entidades de Relacionamento” para alguns casos, o que no sistema “normal” seriam absolutamente dispensáveis… (Não quero entrar em detalhes a respeito desse ponto especifico. É apenas um comentario sobre uma situação na qual me deparei).
Vejo no hibernate vários pontos positivos, mas questino se a portabilidade entre bancos compensa o tempo que vc leva criando mapeamentos (q as vezes são bastante tediosos e complicados de fazer) + algumas peculiariades como a criação de entidades de relacionamento desnecessárias + o uso do hql no codigo (que pode ser colocado nos xmls ou usando a Criteria Api, eu sei) mas em muitos codigos que ví e com as pessoas da universidade onde estudo pude conversar, usam o codigo hql inserido na classe.
Se eu falei algo errado por favor me corrijam, gostaria muito que tivessemos uma conversa produtiva q nos ajudasse a optar melhor de acordo com nossas experiencias.
Obrigado.
Como falei anteriormente não conheço o Hibernate, mas acredito que exista um plugin para o Eclipse que ajude a fazer os mapeamentos.
Segue como eu faço pra carregar o SqlMap
package br.com.empresa.pesquisaredecred.database;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import java.io.IOException;
import java.io.Reader;
public class IbatisService {
private SqlMapClient sqlmap;
private static IbatisService instance;
public IbatisService() throws IOException {
Reader reader = Resources.getResourceAsReader("br/com/empresa/pesquisaredecred/conf/ibatis/SqlMapConfig.xml");
sqlmap = SqlMapClientBuilder.buildSqlMapClient(reader);
}
public SqlMapClient getSqlMapHandler(){
return sqlmap;
}
}
Qualquer dúvida estamos ae !
amilhoranza ,
Obrigado pela atenção, isso vai me ajudar enquanto não crio uma estrutura "jsf+ibatis+Spring". Se eu puder ajudar em algo é só passar e-mail ok...
Valeu galera boa de java… :idea:
Opa, precisando pode contar também. :thumbup:
Alguns códigos mais antigos ainda usam o iBatis aqui, mas os novos códigos usam Hibernate.