A diferença entre mybatis e ibatis:
1. Mybatis implementa a ligação da interface, tornando mais conveniente usar <br /> em ibatis2.x, precisamos especificar qual arquivo de mapeamento XML corresponde à classe de implementação DAO.
O Mybatis implementa a ligação da interface Dao e do arquivo de mapeamento XML e gera automaticamente a implementação específica da interface para nós, facilitando o uso e mais conveniente.
Pode -se dizer que isso é a melhoria mais importante dos Mybatis.
Perceber:
Embora o mybatis suporte o uso da configuração de anotação diretamente na interface para simplificar a configuração,
No entanto, é altamente recomendável usar o método de configuração XML. Afinal, o método de anotação de configuração é limitado e o código é muito invasivo. Somente usando o método de configuração XML, as vantagens dos mybatis podem ser refletidas
2. A melhoria do mapeamento de relacionamento com objetos é mais eficiente <r />, acredito que muitos amigos que estão usando o IBATIS2.x não percebem o mapeamento de relacionamento entre objetos através do arquivo de mapeamento XML da IBATIS. De fato, não há necessidade de fazer isso, porque o ibatis2.x usa "consulta no pescoço" para realizar a relação entre objetos através da montagem direta de declarações de consulta, e seu efeito é o mesmo que o encapsulamento no DAO ou serviço.
No entanto, esse método possui "N+1 de consulta".
Em resumo, o problema de consulta N+1 pode ser causado assim:
? Você executa uma instrução SQL separada para obter a lista de resultados (ou seja, +1).
? Para cada registro retornado, você executa uma declaração de consulta para carregar os detalhes de cada carregamento (ou seja, n).
Esse problema pode fazer com que centenas de declarações SQL sejam executadas. Isso geralmente não é esperado.
Em Mybatis, além de ser compatível com o método "consulta pescoço" em ibatis2.x, ele também fornece um método direto de "resultado do pescoço", que é equivalente a encapsular automaticamente o objeto DTO consultado no objeto necessário através de uma frase SQL.
Para métodos específicos de implementação, consulte o Manual Oficial do Usuário Mybatis sozinho e não os descreva aqui.
No entanto, de fato, os benefícios trazidos por essa melhoria são muito limitados. Porque esse método não funciona ao usar a paginação, ou o conjunto de objetos aninhados não pode pagar. Isso foi claramente restrito na estrutura do Mybatis (34 linhas em org.apache.ibatis.executor.resultset.nestedResultSetHandler), e há muitos casos em que a paginação é necessária em projetos reais ...
Se você pensa com cuidado, o mapeamento de um para muitos não pode estar pagando através de arquivos de configuração, porque o número de registros consultados neste momento não é igual ao tamanho do objeto de retorno real, mas não entendo por que o mapeamento individual não é permitido. Talvez seja porque um para um é um caso especial um para muitos e, ao projetar a estrutura, não é considerado ou difícil lidar com esse caso especial.
3. Mybatis usa poderosas expressões baseadas em OGNL para eliminar outros elementos <br /> pessoas familiarizadas com o STRUTS2 não devem estar familiarizadas com as expressões da OGNL.
O Mybatis usa expressões OGNL para simplificar a complexidade dos arquivos de configuração e é mais simples de usar.
Talvez esteja mais preocupado
Mybatis implementa a ligação da interface, tornando mais conveniente o uso.
Ibatis/mybatis 3 fornece um novo recurso: anotação.