HikariCP para Java: guia completo com exemplos práticos
1. O que é e para que serve
HikariCP (pronuncia-se "ri-cá-ri-si-pi") é um pool de conexões de banco de dados de alto desempenho para Java. O nome vem da palavra japonesa "光" (hikari), que significa "luz". A biblioteca foi projetada com foco em latência mínima e máxima taxa de transferência. No mundo Java, existem vários pools de conexões (como Apache DBCP, C3P0, Tomcat JDBC), mas o HikariCP é considerado o mais rápido e leve.
Por que usar um pool de conexões? Estabelecer uma conexão com o banco de dados é uma operação cara (handshake TCP, autenticação, criação de sessão). Se uma nova conexão for aberta para cada consulta SQL, o desempenho da aplicação cai drasticamente. O pool de conexões resolve esse problema: ele mantém conexões pré-criadas em um "reservatório". Quando a aplicação precisa executar uma consulta, ela pega uma conexão pronta do pool, usa e a devolve. Isso acelera significativamente o trabalho e reduz a carga no banco de dados.
O HikariCP é usado em grandes projetos como Spring Boot (padrão desde a versão 2.0), Play Framework, Dropwizard e muitos outros. A biblioteca suporta todos os principais SGBDs: PostgreSQL, MySQL, MariaDB, Oracle, H2, HSQLDB, SQL Server e outros. Graças à sua eficiência e simplicidade, o HikariCP se tornou o padrão de fato para pools de conexões no ecossistema Java.
2. Instalação
O HikariCP é distribuído através do repositório central do Maven. Para instalar, adicione a dependência ao seu arquivo pom.xml (para Maven) ou build.gradle (para Gradle). Você também precisará do driver JDBC para o seu banco de dados.
Maven (pom.xml)
<!-- HikariCP -->
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>5.1.0</version>
</dependency>
<!-- Driver JDBC para PostgreSQL (exemplo) -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.7.1</version>
</dependency>
Gradle (build.gradle)
implementation 'com.zaxxer:HikariCP:5.1.0'
implementation 'org.postgresql:postgresql:42.7.1'
Importante: As versões podem mudar. Recomenda-se verificar a versão mais recente no site oficial do Maven Central. Para outros SGBDs, substitua o driver pelo correspondente (por exemplo, mysql-connector-j para MySQL).
3. Início rápido — exemplo mínimo funcional
Abaixo está um exemplo mínimo de uso do HikariCP para executar uma consulta simples em um banco de dados PostgreSQL. Presume-se que você tenha o PostgreSQL em execução com um banco de dados testdb e uma tabela users.
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
public class QuickStart {
public static void main(String[] args) {
// 1. Configuração
HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:postgresql://localhost:5432/testdb");
config.setUsername("postgres");
config.setPassword("password");
config.setMaximumPoolSize(10);
// 2. Criação do DataSource
try (HikariDataSource dataSource = new HikariDataSource(config)) {
// 3. Obtendo uma conexão do pool
try (Connection