Einführung in die Arbeit mit Datenbanken in Kotlin
Kotlin ist eine moderne Programmiersprache, die aktiv für die Entwicklung von Serveranwendungen, Android-Apps und Backend-Diensten eingesetzt wird. Eine der Schlüsselqualifikationen für jeden Entwickler ist die Fähigkeit, mit Datenbanken zu arbeiten. In diesem Artikel werden wir uns ansehen, wie man sich mit der relationalen Datenbank PostgreSQL und der dokumentenorientierten Datenbank MongoDB verbindet, und zwar mit Kotlin. Das Material richtet sich an Anfänger: Wir behandeln die Installation von Treibern, die Konfiguration der Verbindung und die Durchführung grundlegender CRUD-Operationen (Erstellen, Lesen, Aktualisieren, Löschen).
1. Umgebungsvorbereitung und Abhängigkeiten
Für die Arbeit benötigen Sie ein Kotlin-Projekt (z. B. mit Gradle oder Maven). Wir verwenden Gradle – das beliebteste Build-Tool im Kotlin-Ökosystem. Fügen Sie die folgenden Abhängigkeiten in die Datei build.gradle.kts ein:
dependencies { // Für PostgreSQL implementation("org.jetbrains.exposed:exposed-core:0.44.1") implementation("org.jetbrains.exposed:exposed-dao:0.44.1") implementation("org.jetbrains.exposed:exposed-jdbc:0.44.1") implementation("org.postgresql:postgresql:42.7.1")
// Für MongoDB implementation("org.mongodb:mongodb-driver-kotlin-sync:4.11.1") implementation("org.mongodb:bson-kotlinx:4.11.1")}Exposed ist eine leichtgewichtige ORM-Bibliothek für Kotlin, die die Arbeit mit SQL-Datenbanken vereinfacht. Für MongoDB verwenden wir den offiziellen Kotlin-Treiber von MongoDB.
2. Arbeiten mit PostgreSQL über Exposed
2.1. Verbindung zur Datenbank herstellen
Zuerst erstellen wir ein Objekt für die Verbindung zu PostgreSQL. Stellen Sie sicher, dass auf Ihrem Computer ein PostgreSQL-Server läuft und eine Datenbank (z. B. testdb) erstellt wurde.
import org.jetbrains.exposed.sql.Databaseimport org.jetbrains.exposed.sql.transactions.transaction
fun main() { // Verbindung zur lokalen DB Database.connect( url = "jdbc:postgresql://localhost:5432/testdb", driver = "org.postgresql.Driver", user = "postgres", password = "your_password" )
println("Verbindung zu PostgreSQL erfolgreich hergestellt")}Nach der Verbindung können SQL-Abfragen ausgeführt werden. Exposed verwendet eine DSL (Domain-Specific Language) zum Schreiben von Abfragen in Kotlin.
2.2. Erstellen einer Tabelle und CRUD-Operationen
Definieren wir eine einfache Tabelle Users mit den Feldern id, name und email:
import org.jetbrains.exposed.sql.*import org.jetbrains.exposed.sql.transactions.transaction
object Users : Table() { val id = integer("id").autoIncrement() val name = varchar("name", 50) val email = varchar("email", 100)
override val primaryKey = PrimaryKey(id)}
fun main() { Database.connect(...)
transaction { // Tabelle erstellen SchemaUtils.create(Users)
// INSERT (Erstellen) Users.insert { it[name] = "Ivan Petrov" it[email] = "ivan@example.com" }
// SELECT (Lesen) val users = Users.selectAll().map { "${it[Users.id]}: ${it[Users.name]} (${it[Users.email]})" } println("Benutzer: $users")
// UPDATE (Aktualisieren) Users.update({ Users.id eq 1 }) { it[name] = "Ivan Sidorov" }
// DELETE (Löschen) Users.deleteWhere { Users.id eq 1 } }}Wie Sie sehen, ähnelt der Code stark normalem SQL, ist aber in reinem Kotlin geschrieben. Exposed maskiert automatisch Namen und schützt vor SQL-Injection.
3. Arbeiten mit MongoDB über den Kotlin-Treiber
3.1. Verbindung zu MongoDB herstellen
MongoDB ist eine NoSQL-Datenbank, die Daten in JSON-ähnlichen Dokumenten speichert. Für die Verbindung verwenden wir den synchronen Treiber:
import com.mongodb.kotlin.client.coroutine.MongoClientimport kot