Connessione a MySQL e MariaDB in Kotlin con Ktorm
Ktorm è una di quelle librerie per la serie "come ha fatto a sfuggirmi fino adesso??"
E' un ORM per Kotlin che si aggancia a diversi db.
In questo articolo vediamo come usarlo con MySQL e MariaDB.
Dobbiamo aggiungere alcune dipendenze; se usate Maven:
<dependency>
<groupId>org.ktorm</groupId>
<artifactId>ktorm-core</artifactId>
<version>3.6.0</version>
</dependency>
<dependency>
<groupId>org.ktorm</groupId>
<artifactId>ktorm-support-mysql</artifactId>
<version>3.6.0</version>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>9.2.0</version>
</dependency>
Poi creiamo una classe POJO che rappresenta la nostra tabella:
import org.ktorm.schema.Table
import org.ktorm.schema.int
import org.ktorm.schema.varchar
object Persona: Table<Nothing>("persone") {
val id = int("id").primaryKey()
val nome = varchar("nome")
val email = varchar("email")
}
Infine facciamo qualche operazione:
import org.ktorm.database.Database
import org.ktorm.dsl.*
fun main() {
val database = Database.connect(
"jdbc:mysql://localhost:3306/DB",
user = "USER",
password = "PWD"
)
// INSERISCO UN RECORD
database.insert(Persona) {
set(it.nome, "TEST2")
set(it.email, "email")
}
// VISUALIZZO TUTTI I RECORDS
for (row in database.from(Persona).select()) {
println(row[Persona.nome] + "-" + row[Persona.email])
}
// VISUALIZZO RECORD CERCANDO UNA EMAIL
database
.from(Persona)
.select()
.where { (Persona.email eq "email") }
.forEach { row ->
println(row[Persona.nome] + "-" + row[Persona.email])
}
}
Enjoy!
kotlin maven mysql mariadb ktorm
Commentami!