Study
Ktor

Exposed: Database ORM Dasar

Penjelasan

Exposed adalah library database resmi JetBrains untuk Kotlin (alternatif GORM di ekosistem Go) — tabel didefinisikan sebagai OBJECT Kotlin (bukan class) turunan Table, dengan dua gaya API: DSL (mirip SQL builder) dan DAO (mirip ORM tradisional). Contoh berikut memakai gaya DSL yang lebih umum dipakai.

Contoh Konsep

import org.jetbrains.exposed.sql.*

object Produk : Table() {
    val id = integer("id").autoIncrement()
    val nama = varchar("nama", 255)
    val harga = double("harga")

    override val primaryKey = PrimaryKey(id)
}

fun main() {
    Database.connect("jdbc:sqlite:data.db", driver = "org.sqlite.JDBC")

    transaction {
        SchemaUtils.create(Produk) // otomatis bikin tabel dari definisi object
    }
}

Praktikum

Buat object Artikel : Table() dengan kolom id (integer, autoIncrement), judul (varchar 255), dan isi (text). Tulis contoh SchemaUtils.create(Artikel) untuk membuat tabelnya.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Exposed mendefinisikan tabel sebagai object (Kotlin singleton), BUKAN class biasa — ini SENGAJA karena satu tabel memang cuma butuh SATU representasi di seluruh aplikasi (tidak perlu di-instantiate berkali-kali), beda dari GORM Go yang tabelnya berupa struct biasa.