Escriu per cercar…

Intro

Introducció

Ktorm és un plugin del compilador:

compile "org.ktorm:ktorm-core:${ktorm.version}"

Schema

Enlloc de treballar directament amb SQL creem un objecte que representa una taula i que ens permet crear consultes directament amb Kotlin amb tots els beneficis que això comporta.

El primer que has de fer es crear un objecte per cada taula de la base de dades que vulguis accedir.

En la nostra base de dades de demostració tenim dos taules: department i employee:

kotlin
object Departments : Table<Nothing>("department") {
    val id = int("id").primaryKey()
    val name = varchar("name")
    val location = varchar("location")
}

object Employees : Table<Nothing>("employee") {
    val id = int("id").primaryKey()
    val name = varchar("name")
    val job = varchar("job")
    val managerId = int("manager_id")
    val hireDate = date("hire_date")
    val salary = long("salary")
    val departmentId = int("department_id")
}

A continuació, ens conectem a la base de dades i fem una consulta senzilla:

kotlin
fun main() {
    val database = Database.connect("jdbc:mysql://localhost:3306/ktorm", user = "root", password = "***")

    for (row in database.from(Employees).select()) {
        println(row[Employees.name])
    }
}

Quan executes aquest programa, Ktorm generarà una sentència SQL select * from employee que és la que s’enviarà a la base de dades.

La funció select torna un objecte que “overloads” l’operador d’iteració.

Per recòrrer l’iterador utlitzes un bucle for imprimint el nom de cada treballador.

SQL DSL

Pots afegir algunes condicions de filtre a la consulta:

kotlin
database
    .from(Employees)
    .select(Employees.name)
    .where { (Employees.departmentId eq 1) and (Employees.name like "%vince%") }
    .forEach { row -> 
        println(row[Employees.name])
    }

Estàs llegint una vista prèvia.

Inicia sessió amb Google per llegir la pàgina completa.

Inicia sessió amb Google

Amb qualsevol compte de Google. Només et demanarem que acceptis les condicions del servei.