Search⌘ K
AI Features

Connecting to the Database

Explore how to connect your Ktor microservice to a PostgreSQL database using the Exposed library. Learn to configure database connections in Kotlin, apply the Singleton pattern for database access, create tables, and manage data classes. This lesson guides you to set up a robust database integration within your Kotlin application.

To store and retrieve cat data , we’ll need to connect to a database. We’ll use PostgreSQL for that purpose, although using another SQL database won’t be any different.

Adding the exposed library

First, we’ll need a new library to connect to the database. We’ll use the Exposed library, which is also developed by JetBrains.

Let’s add the following dependency to our build.gradle.kts file:

dependencies {
    implementation("org.jetbrains.exposed:exposed:0.17.14")
    implementation("org.postgresql:postgresql:42.2.24")
    ...
}

Connecting to the database

Once the libraries are in place, we need to connect to them. To do that, let’s create a new file called db.kt under /src/main/kotlin/catshostel with the following contents:

object DB {
     private val host=System.getenv("DB_HOST")?:"localhost"
     .
     .
     .
     fun connect() = Database.connect(
         "jdbc:postgresql://$host:$port/$dbName",
         driver = "org.postgresql.Driver",
         user
...