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 leyendo una vista previa.
Inicia sesión con Google para leer la página completa. Sigue el itinerario de aprendizaje — cada página se desbloquea cuando has leído las que la preceden. El alumnado y el profesorado leen las páginas de su curso sin límite.
Iniciar sesión