Acceso a bases de datos con JDBC: tutorial completo Java 21

JDBC (Java Database Connectivity) es la API estándar de Java para conectar aplicaciones con bases de datos relacionales. Existe desde Java 1.1 (1997) y sigue siendo la base de todos los frameworks de persistencia Java: Hibernate, Spring Data JPA, MyBatis y jOOQ usan JDBC por debajo.

En 2026, la versión actual es JDBC 4.3, incluida en Java 8+. Las mejoras recientes son incrementales: mejor integración con java.time, sharding, mejorado soporte de Ref y Blob, y RowSet independiente del servidor. La API fundamental lleva décadas sin cambiar, lo que hace que el conocimiento adquirido aquí sea duradero.

¿Cuándo usar JDBC directamente y cuándo usar un ORM?

  • JDBC directo: aplicaciones con consultas complejas y optimizadas, operaciones masivas (batch insert), control total sobre el SQL, microservicios ligeros sin overhead de Hibernate.
  • JPA/Hibernate: CRUD estándar, mapeo objeto-relacional, cuando la productividad importa más que el control fino del SQL.
  • jOOQ: el mejor punto intermedio: SQL type-safe generado a partir del esquema real, sin "magia" de ORM.

Este tutorial cubre JDBC con buenas prácticas modernas: pool de conexiones con HikariCP, PreparedStatement, transacciones y el patrón DAO.

Dependencias Maven

<!-- Driver MySQL (ajusta para PostgreSQL, MariaDB, etc.) -->
<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
    <version>9.0.0</version>
</dependency>

<!-- Pool de conexiones HikariCP (recomendado) -->
<dependency>
    <groupId>com.zaxxer</groupId>
    <artifactId>HikariCP</artifactId>
    <version>5.1.0</version>
</dependency>

Drivers disponibles para los principales SGBD

  • MySQL / MariaDB: com.mysql:mysql-connector-j:9.0.0 / org.mariadb.jdbc:mariadb-java-client:3.4.0
  • PostgreSQL: org.postgresql:postgresql:42.7.3
  • SQLite: org.xerial:sqlite-jdbc:3.46.0.0
  • Oracle: com.oracle.database.jdbc:ojdbc11:21.15.0.0.1
  • SQL Server: com.microsoft.sqlserver:mssql-jdbc:12.8.0.jre11
  • H2 (en memoria, tests): com.h2database:h2:2.3.232

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR