Conectar Kotlin con PostgreSQL usando JDBC es un proceso sencillo que nos permite interactuar directamente con la base de datos mediante consultas SQL. Para empezar, debemos crear un proyecto en Kotlin configurado con Gradle, lo que facilita la gestión de dependencias y la construcción del proyecto. En nuestro caso, utilizaremos la versión 17 del JDK y el DSL de Kotlin para Gradle, que es la opción recomendada actualmente.
El siguiente paso es agregar la dependencia del driver de PostgreSQL en el archivo build.gradle.kts. Aunque la página oficial de PostgreSQL no proporciona directamente las coordenadas para Gradle, podemos usar las de Maven adaptándolas fácilmente. La dependencia que añadimos es:
implementation("org.postgresql:postgresql:42.6.0")
Es importante verificar que esta versión sea la más reciente en el momento de configurar el proyecto, ya que puede cambiar con el tiempo. Una vez añadida la dependencia, sincronizamos el proyecto para que Gradle descargue el driver y lo integre correctamente.
Una ventaja de usar Gradle es que nos evitamos tener que cargar manualmente el driver con Class.forName, ya que Gradle se encarga de inicializarlo automáticamente.
Para probar la conexión, creamos un objeto en Kotlin con una función main. En este ejemplo, conectamos a una base de datos PostgreSQL local llamada escuela, que contiene una tabla alumnos. La conexión se establece mediante DriverManager.getConnection con una URL que sigue el formato estándar de JDBC para PostgreSQL:
val connection = DriverManager.getConnection(
"jdbc:postgresql://localhost:5432/escuela"
)
Si fuera necesario, podríamos incluir usuario y contraseña como parámetros adicionales o mediante un objeto Properties.
Con la conexión lista, creamos un Statement y ejecutamos una consulta SQL para obtener los campos nombre, apellido y fecha_nac de la tabla alumnos. Usamos el bloque use para asegurarnos de que los recursos se cierren automáticamente:
connection.createStatement().use { statement ->
val query = "SELECT nombre, apellido, fecha_nac FROM alumnos"
statement.executeQuery(query).use { resultSet ->
while (resultSet.next()) {
val nombre = resultSet.getString("nombre")
val apellido = resultSet.getString("apellido")
val fechaNac = resultSet.getDate("fecha_nac")
println("$nombre $apellido $fechaNac")
}
}
}
Al ejecutar este código, podemos ver en la consola los datos recuperados de la base de datos, confirmando que la conexión y la consulta funcionan correctamente.
A partir de aquí, podemos construir sobre esta base para crear objetos DTO o DAO que nos ayuden a manejar los datos de forma más estructurada y orientada a objetos, siguiendo las prácticas habituales en el desarrollo con JDBC.
Si queremos profundizar más en el uso de bases de datos con Kotlin, existen recursos y tutoriales que explican cómo trabajar con diferentes tecnologías y patrones para facilitar la interacción con bases de datos en aplicaciones Kotlin.