CodeBlanks Logo Icon CodeBlanks

Table

Table object ile şema tanımlamayı öğrenirsin.

Table object

Bir Table, Exposed'da bir Kotlin object ile tanımlanır. Her sütun bir val özellik olarak bildirilir.

Örnek: object Users : Table() { val id = integer("id"); val name = varchar("name", 50) }. Bu tablo veritabanında users adıyla bir tabloyu temsil eder. integer, varchar, bool gibi fonksiyonlar sütun türlerini belirler. Birincil anahtar için val id = integer("id").autoIncrement() ve override val primaryKey = PrimaryKey(id) kullanılır. Tablo adı varsayılan olarak object adının küçük harfıdır.

Sütun türleri

Exposed, sık kullanılan SQL türleri için fonksiyonlar sunar: integer, varchar, bool, long, text.

Örnek: val name = varchar("name", 50) 50 karakterlik bir metin sütunu tanımlar. val age = integer("age") tamsayı sütunudur. val active = bool("active") Boolean sütunudur. Nullable sütun için .nullable() eklenir. Varsayılan değer için .default(0). Bu bildirimler SQL DDL'i otomatik üretir; tabloyu veritabanında oluşturmak için ayrı bir yardımcı çağrı kullanılır.

Uygulama Users tablosu tanımla

object Users : Table() tanımla. İçinde val id = integer("id") ve val name = varchar("name", 50) olsun. main içinde println("Tablo hazır") yazdır.

Başlangıç kodu

Main.kt
// Table
// buraya yaz
import org.jetbrains.exposed.sql.*

fun main() {
    
}

Örnek çözüm

Main.kt
object Users : Table() {
    val id = integer("id")
    val name = varchar("name", 50)
}

fun main() {
    println("Tablo hazır")
}

Beklenen çıktı

Tablo hazır

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Table tanımını tamamla

Soru
object Users : ____() {
    val id = integer("id")
    val name = varchar("name", 50)
}
Cevap
object Users : Table() {
    val id = integer("id")
    val name = varchar("name", 50)
}

Açıklama: Table ile tablo tabanı tanımlanır.

2 Sütun türlerini eşle

Kavram Anlamı
integer Tamsayı
varchar Metin
bool Mantıksal
long Uzun tamsayı

3 Exposed'da tablo hangi yapı ile tanımlanır?

  • interface
  • data class
  • sealed class
  • object : Table() Doğru cevap

Açıklama: Tablolar object : Table() ile tanımlanır.

İleri seviye bölümündeki tüm dersler