Implementação de Paginação e Cache em MyBatis
Paginação em MyBatis: Lógica vs Física
Paginação Lógica
O MyBatis utiliza paginação lógica por padrão, onde todos os registros são carregadso na memória antes da seleção do subconjunto desejado. Por exemplo, com 100 registros no banco e página de 10 elementos, todos os 100 são transferidos para memória antes da extração. Essa abordagem possui l ...
Publicado em 6-17 22:48
Simplificando Condições IN com @Select no MyBatis
Ao migrar recentemente do JPA para o MyBatis utilizando configuração sem XML e anotações @Select diretamente nas interfaces, deparei-me com a complexidade na implementação de condições IN.
A abordagem tradicional exige uma sintaxe bastante verbosa:
@Select({"<script>",
"SELECT *",
"FROM artigo&q ...
Publicado em 6-16 02:56
Java no Desenvolvimento Real: Anotações Comuns com Cenários de Uso Prático
No caminho para aprofundar o desenvolvimento em Java, as anotações (Annotations) são uma "ferramenta mágica" para aumentar a eficiência. Elas não são tão intuitivas quanto a lógica de negócios, mas simplificam silenciosamente as configurações, normalizam o código e reduzem o acoplamento, nos libertando de configurações XML complexas e ...
Publicado em 6-15 16:46
Otimizando Paginação Física no Oracle com MyBatis: Como Evitar o Problema de Hard Parse
O RowBounds padrão do MyBatis realiza o que chamamos de paginação em memória. Ele recupera todo o conjunto de dados do banco de dados e, somente no lado da aplicação, extrai o subconjunto desjeado. Em sistemas com grandes volumes de dados, essa abordagem é um caminho rápido para erros de OutOfMemoryError (OOM).
A solução convencional no ecossis ...
Publicado em 6-15 03:31
Etiquetas Essenciais em Arquivos de Mapeamento do MyBatis
O MyBatis é uma estrutura de persistência que utiliza arquivos XML para definir o mapeamento entre as consultas SQL e os métodos da interface Java. Estes arquivos, conhecidos como mapeamentos de Mapper, utilizam uma variedade de etiquetas para expressar operações de banco de dados complexas de forma declarativa.
Reutilização e Nomenclatura
Para ...
Publicado em 6-14 18:42
Integração Completa do Spring Boot 2.0.4 com MyBatis para Autenticação JWT
Continuando do artigo anterior sobre autenticação JWT com Spring Boot, realizei uma integração completa entre o Spring Boot 2.0.4 e o MyBatis.
Artigo de referência: Implementação de Controle de Acesso RESTful com Spring Boot + Spring Security + JWT
Código-fonte disponível em:
Gitee: https://gitee.com/region/spring-security-oauth-example/tree/ma ...
Publicado em 6-11 19:49
Tratamento manual de transações e falha de persistência no Spring com MyBatis
Considere um cenário com um banco de dados MySQL que suporta uma aplicação de negócios de recarga e pagamento. Um problema recorrente é a inserção aparentemente bem-sucedida de um pedido no banco de dados, mas que após uma falha no processo de pagamento (como com o WeChat Pay), o registro não é encontrado ou foi revertido. A raiz do problema es ...
Publicado em 6-8 03:45
Configuração Completa de Projeto Java Web com Spring MVC e MyBatis
Este artigo apresenta uma referência prática para configurar um projeto Java Web utilizando Spring, Spring MVC, MyBatis e diversas bibliotecas complementares. São abordados desde as dependências Maven até os arquivos de configuração essenciais.
Dependências Maven (pom.xml)
Abaixo estão listadas as principais dependências organizadas por cate ...
Publicado em 6-6 01:13
Configuração de Infraestrutura para Aplicações Java com Spring e MyBatis
A estruturação de um projeto robusto em Java exige a integração harmoniosa de diferentes camadas, como a persistência de dados, a lógica de negócios e o controle web. Abaixo, apresentamos os arquivos de configuração fundamentais para esatbelecer esse ecossistema utilizando o ecossistema Spring e o framework MyBatis.
1. Contexto Global da Aplica ...
Publicado em 6-5 19:35
Configurando uma Aplicação Spring Boot com Integrações de Framework
Para configurar o ambiente de negócios com os frameworks Spring e SpringMVC dentro de uma aplicação Spring Boot, é necessário ativar a varredura de componentes. Adicione a anotação @ComponentScan à classe principal da aplicação.
package com.exemplo.sistema;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.auto ...
Publicado em 6-5 18:26