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:
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:
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:
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. Segueix l'itinerari d'aprenentatge — cada pàgina es desbloqueja quan has llegit les que la precedeixen. L'alumnat i el professorat llegeixen les pàgines del seu curs sense límit.
Inicia sessió