[DOCKER] DB-Zugriff mit Exposed

Ich habe Exposed für den DB-Zugriff in Kotlin verwendet, es ist also ein Memorandum. Um den Vorgang zu überprüfen, habe ich mit Docker eine Test-DB eingerichtet und überprüft.

Ich bezog mich für die Umgebungskonstruktion von DOcker auf Folgendes. ・ Einführung von WSL2 und Docker https://qiita.com/KoKeCross/items/a6365af2594a102a817b

・ Maßnahmen zur Erschöpfung des WSL2-Speichers https://qiita.com/yoichiwo7/items/e3e13b6fe2f32c4c6120

Was ist ausgesetzt?

Eine in Kotlin geschriebene SQL-Bibliothek. https://github.com/JetBrains/Exposed

Beispielprogramm

Zunächst die Datei docker-compose.yaml zum Erstellen einer Datenbank mit Docker.

version: '3'
services:
  db:
    image: postgres:12.3
    ports:
      - 5433:5432
    environment:
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: admin
      POSTGRES_DB: test_db

Als nächstes folgt die Tabellendefinition.

object Member : Table("member") {
    val id = integer("member_id").autoIncrement().primaryKey()
    val name = varchar("name", 50)
    val age = integer("age")
}

Endlich die Hauptfunktion.

import org.jetbrains.exposed.sql.*
import org.jetbrains.exposed.sql.transactions.transaction
import org.jetbrains.exposed.sql.SchemUtils.create

fun main() {
    Database.connect("jdbc:postgresql://localhot:5433/test_db", "org.postgresql.Driver", "admin", "admin")

    transaction {
        addLogger(StdOutSqlLogger)

        create(Member)

        Member.insert {
            it[id] = 1
            it[name] = "abc"
            it[age] = 20
        }

        Member.insert {
            it[id] = 2
            it[name] = "efd"
            it[age] = 30
        }

        for(member in Member.selectAll()) {
            println("${member[Member.id]}: ${member[Member.name]}: ${member[Member.age]}")
        }

        Member.update({Member.name eq "abc"}) {
            it[name] = "AIUEO"
        }

        for(member in Member.selectAll()) {
            println("${member[Member.id]}: ${member[Member.name]}: ${member[Member.age]}")
        }

        Member.deleteAll()

        drop(Member)
    }
}

Es ist eine Niederlage, aber vorerst konnte ich bestätigen, dass CRUD durchgeführt werden kann.

Recommended Posts

DB-Zugriff mit Exposed
Greifen Sie über das Repository mit Spring Data auf die Datenbank zu.
DB-Programmierung mit EclipseLink Teil1
Fügen Sie Daten mithilfe der Yaml-Datei in die Datenbank ein
ERRORCODE = -4471 tritt in einer Java-Anwendung auf, die Db2 verwendet.
Generieren Sie die DB-Dokumentation mit SchemaSpy in Gradle
[Java] Erstellen wir eine DB-Zugriffsbibliothek!