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.
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.