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